0 Câu hỏi: Cuộc gọi SSIS tới SMO hoạt động trong Visual Studio nhưng không thành công khi chạy từ SQL Agent Job trên máy chủ. Công việc không sử dụng SMO hoạt động tốt

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Tôi đã viết gói SSIS 2017 sử dụng SMO (công cụ quản lý máy chủ sql) để đồng bộ máy chủ phục hồi thảm họa (DR) của tôi với máy chủ sản xuất của tôi. Cả hai máy chủ đều là 2017. Gói chạy tốt trên máy chủ DR từ Visual Studio 2017 (SSDT) ​​khi sử dụng đăng nhập mạng của tôi nhưng không thành công khi chạy từ máy chủ DR dưới dạng công việc của đại lý sql với lỗi này:

Tác vụ tập lệnh: Lỗi: Ngoại lệ đã bị ném bởi mục tiêu của lệnh gọi.

Tôi đã thử chạy công việc đại lý sql bằng proxy với thông tin đăng nhập mạng của tôi và vẫn nhận được lỗi. Việc gói khối mã trong Thử /Bắt không dẫn đến thông báo lỗi tốt hơn. Tôi đã có thể kết nối thành công bằng cách sử dụng SMO từ tập lệnh powershell trong công việc đại lý sql trên máy chủ DR. Mã mẫu:

[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null
$serverInstance = New-Object ('Microsoft.SqlServer.Management.Smo.Server') Server1

Chi tiết khác về tác vụ tập lệnh:

Phiên bản máy chủ mục tiêu: SQL Server 2017

Khung mục tiêu: .Net Framework 4.5 (Các máy chủ có 4.6.2)

Tài liệu tham khảo:

  • D: \Tệp chương trình (x86) \Microsoft SQL
    Máy chủ \140 \DTS \Nhiệm vụ \Microsoft.SqlServer.ConnectionInfo.dll
  • D: \Tệp chương trình (x86) \Microsoft SQL
    Máy chủ \140 \DTS \Nhiệm vụ \Microsoft.SqlServer.Smo.dll

Mã:

Imports Microsoft.SqlServer.Management.Smo
Dim smoSourceServer As Server = New Server("Server1")

Bất kỳ trợ giúp hoặc ý tưởng nào về những gì cần cố gắng để làm việc này đều được đánh giá cao!

    
0
  1. Tôi thường gặp lỗi chung khó chịu này khi tôi quên triển khai DLL lên GAC hoặc khi chạy ở chế độ 64 bit khi một thành phần của gói của tôi chỉ được cài đặt trong 32 bit. Sự khác biệt về phiên bản trên DLLS cũng có thể gây ra điều này nếu tôi nhớ chính xác.
    2019-05-08 16: 18: 56Z
  2. Cảm ơn bạn đã trả lời @JoeC! Tôi đã kiểm tra GAC ​​và có thể thấy DLLS trong bộ đệm: Microsoft (R) .NET Global Cache Cache Utility. Phiên bản 4.0.30319.0 Bản quyền (c) Tập đoàn Microsoft. Đã đăng ký Bản quyền. Bộ đệm ẩn hội đồng toàn cầu chứa các hội đồng sau: Microsoft.SqlServer.ConnectionInfo, Version = 14.0.0.0, Culture = trung tính, PublicKeyToken = 89845dcd8080cc91, bộ vi xử lý 89845dcd8080cc91, bộ xử lýArch architecture = MSIL Tôi cũng đã thử chạy trong 32 bit và điều đó không giúp ích gì.
    2019-05-08 16: 46: 13Z
  3. @ JoeC Các phiên bản tôi có thể thấy trong lựa chọn tham chiếu trong SSDT là 14.100.0.0. Đó có thể là vấn đề?
    2019-05-08 16: 53: 20Z
  4. Tôi tin rằng một vấn đề tương tự đã xảy ra với tôi trong quá khứ đáng để thử.
    2019-05-09 13: 32: 48Z
0 Câu trả lời                              0                         
nguồn đặt đây