私はコンソールアプリケーションで自分自身をホストしている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;
}
}
:ここ
は、自己に私が使用していたコードが私のサービスをホストするのですか?
マシンを移動するときに変更する設定ファイルを使用する必要がありますか(私は設定から離れています。なぜなら、それは唯一の方法であれば、私はそれをやるつもりです。)