0

IISを実行しているサーバーに展開されるWCFサービスを構築しています。現在のソリューションからサービス参照を追加して、問題なく使用できます。

その特定のマシンにサービスをデプロイする場合、それを使用するアプリケーションにサービスを再度追加する必要がありますか?

4

3 に答える 3

3

いいえ、他のマシンと一致するようにサービスURLを変更する必要があります。

サービス参照を追加するとプロキシが生成され、そのプロキシはそれらのサービスをホストするすべてのサーバーに対して機能します。必要なのは正しいURLだけです。

新しいメソッドの追加やパラメーターの変更など、公開されたサービスが変更された場合にのみ、サービス参照を更新する必要があります。

于 2010-10-14T20:00:25.127 に答える
1

いいえ。プロジェクトへの参照を追加すると、指定されたサービスURLを照会し、SOAPを介してXMLを介して、特定のサービスのすべてのクラスとメソッドのリストを作成します。

これは.NETクラスです。

サービスにメソッドを追加した場合にのみ、参照を削除して読み取る必要があります。

例:レポートサービス2005 Webサービス:

プロジェクトへの参照を追加してから、名前空間をインポートします。

Imports ReportingServiceInterface.ReportingService2005_WebService

このクラスのオブジェクトをインスタンス化し、それにURLを渡します。次に、このクラスのインスタンスを介してWebServiceメソッドを呼び出します。

下記参照:

Public Shared Sub CreateDataSource(ByVal strPath As String, ByVal strDataSourceName As String, ByVal strConnectionString As String, ByVal strDescription As String, ByVal strUserName As String, ByVal strPassword As String)
            Dim rs As ReportingService2005 = New ReportingService2005

            rs.Credentials = ReportingServiceInterface.GetMyCredentials(strCredentialsURL)
            rs.Timeout = ReportingServiceInterface.iTimeout
            rs.Url = ReportingServiceInterface.strReportingServiceURL


            Dim dsdDefinition As DataSourceDefinition = New DataSourceDefinition
            dsdDefinition.CredentialRetrieval = CredentialRetrievalEnum.Store
            dsdDefinition.ConnectString = strConnectionString
            dsdDefinition.Enabled = True
            dsdDefinition.EnabledSpecified = True
            dsdDefinition.Extension = "SQL"
            dsdDefinition.ImpersonateUserSpecified = False
            dsdDefinition.UserName = strUserName ' "UserName"
            dsdDefinition.Password = strPassword ' "Password"
            dsdDefinition.Prompt = Nothing
            dsdDefinition.WindowsCredentials = False


            'Dim PropertyArray As ReportingService2005_WebService.Property() = New ReportingService2005_WebService.Property(0) {}
            'PropertyArray(0) = New ReportingService2005_WebService.Property
            'PropertyArray(0).Name = "Description"
            'PropertyArray(0).Value = "Automatically added DataSource"

            Dim PropertyArray() As ReportingService2005_WebService.Property = { _
                New ReportingService2005_WebService.Property() With {.Name = "Description", .Value = "Automatically added DataSource"} _
            }


            Try
                If String.IsNullOrEmpty(strDescription) Then
                    rs.CreateDataSource(strDataSourceName, strPath, False, dsdDefinition, Nothing)
                Else
                    PropertyArray(0).Value = strDescription
                    rs.CreateDataSource(strDataSourceName, strPath, False, dsdDefinition, PropertyArray)
                End If
            Catch ex As System.Web.Services.Protocols.SoapException
                Console.WriteLine(ex.Detail.InnerXml.ToString())
            End Try
        End Sub ' End Sub CreateDataSource
于 2010-10-14T20:07:36.713 に答える
1

簡単に言うと、クライアントアプリケーションの構成ファイルのサービスアドレスを変更して、新しいサーバーを指すようにします。

これは、展開手順の一部になります。

于 2010-10-15T12:10:31.153 に答える