ASP.Net アプリケーションで WCF サービスを実行しています。svc ファイルの内部は次のようになります。
<%@ ServiceHost Language="C#" Debug="true" Service="my.api.Awesomeapi" Factory="my.api.AwesomeHostFactory" %>
ファクトリ コード ビハインドも ASP.Net アプリケーションにあり、次のようになります。
namespace my.api
{
/// <summary>
/// Custom Service Factory class for Awesome Web Service
/// </summary>
public class AwesomeHostFactory : ServiceHostFactory
{
private const string CONST_DEFAULT_ADDRESS = "http://localhost/api/Awesomeapi.svc";
private static readonly string m_sBaseAddress = my.Utilities.GetAppConfigSetting("AwesomeAPIBaseAddress", CONST_DEFAULT_ADDRESS, true);
protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
{
ServiceHost AwesomeAPIServiceHost = null;
Uri oURI = new Uri(m_sBaseAddress);
AwesomeAPIServiceHost = new ServiceHost(serviceType, oURI);
return AwesomeAPIServiceHost;
}
}
}
サービスは正常に動作しますが、Visual Studio 2010 で w3wp.exe プロセスにアタッチし、CreateServiceHost メソッドにブレークポイントを設定して、上記の localhost URL に初めてアクセスすると、ブレークポイントの円が中空になります (到達できないコードを示します)。次に、サービスが実行され、一般的な「サービスが作成されました」というメッセージが表示され、ブレークポイントが通常の赤いアイコンに戻ります。ここで何が起こっているか知っている人はいますか?