2011-08-18 10 views
1

私はコンソールアプリケーションで自分自身をホストしているwcfサービスを持っています。コードのみWCFホスティングはwsdlへのリンクに "localhost"を持っています

サービスを実行してマシン(MyWCFRunningMachine)にデプロイすると、「サービスを作成しました」ページに移動できます。 (http:// MyWCFRunningMachine:8090/MyService)。

ただし、wsdlページへのリンクが表示されます。私はそのリンクをクリックしたとき

だから、それはMyWCFRunningMachineではなく、私のマシンを使用してサービスに接続しようとする8090/MyServiceでのwsdl:のhttp:// localhostを?そのリンクは次のようになります。

wsdl(http:// MyWCFRunningMachine:8090/MyService?wsdl)のパスにコールドタイプを入力すると、ブラウザにwsdlが表示されます。それはいけない

The document was understood, but it could not be processed.
- The WSDL document contains links that could not be resolved.
- There was an error downloading 'http://localhost:8090/MyService?xsd=xsd0'.

これはまた、ローカルホストを参照している:私は、サービス参照を追加しようとした場合しかし、私はこのエラーを取得します。私は、これはローカルホストを削除するために取得できますか

public class SelfServiceHost 
{ 
    static string StartUpUrl {get{return "http://localhost:8090/MyService";}} 
    static void Main(string[] args) { StartupService(StartUpUrl); } 

    public static ServiceHost StartupService(string startUpUrl) 
    { 
     //+ Setup the Service 
     //Create a URI to serve as the base address 
     Uri httpUrl = new Uri(startUpUrl); 
     //Create ServiceHost 
     ServiceHost host = new ServiceHost(typeof(MyService), httpUrl); 
     //Add a service endpoint 
     host.AddServiceEndpoint(typeof(IMyService), new WSHttpBinding(), ""); 
     //Enable metadata exchange 
     ServiceMetadataBehavior serviceMetadataBehavior = 
      new ServiceMetadataBehavior {HttpGetEnabled = true}; 
     host.Description.Behaviors.Add(serviceMetadataBehavior); 

     //! Turn on Debug. Remove for production! 
     host.Description.Behaviors.Remove(typeof (ServiceDebugBehavior)); 
     ServiceDebugBehavior serviceDebugBehavior = 
      new ServiceDebugBehavior {IncludeExceptionDetailInFaults = true}; 
     host.Description.Behaviors.Add(serviceDebugBehavior); 

     //Start the Service 
     host.Open(); 
     Console.WriteLine("Service is hosted at " + httpUrl); 
     Console.ReadLine(); 

     return host; 
    } 
} 

:ここ

は、自己に私が使用していたコードが私のサービスをホストするのですか?

マシンを移動するときに変更する設定ファイルを使用する必要がありますか(私は設定から​​離れています。なぜなら、それは唯一の方法であれば、私はそれをやるつもりです。)

答えて

1

私はあなたが正しいと思うマシン名を保持するために設定ファイルを使用する

"のhttp://" + MACHINE_NAME + ":8090/MYSERVICE"

サービスがインストールされた後、設定ファイルaにその値を変更しますサービスを再起動してください。

関連する問題