私の WCF サービスには、グローバル静的変数を使用する必要がある OperationContract メソッド (getMyObject()) があります... WCF 操作がグローバル変数が null であるというエラーを常にスローするのはなぜですか?
- 別のデバッガーを使用して WCF サービス ホストをステップ実行しましたが、グローバル変数が null ではないことがわかっています。- しかし、クライアントには null に見えます!
要求しているクライアント:
namespace my_Server.stuffPage {
protected void Page_Load(object sender, EventArgs e) {
ChannelFactory<IGlobal_ServiceContract> pipeFactory = new
ChannelFactory<IGlobal_ServiceContract>(new NetNamedPipeBinding(), new EndpointAddress("net.pipe://mylocalhost/myService"));
GlobalProxy = pipeFactory.CreateChannel();
ListMyObjects myObjects = GlobalProxy.getMyObjects();
}
}
サービスホスト:
namespace my_WindowsService {
public class myServiceHost {
public void startWCFService() {
try {
Uri baseAddress = new Uri("net.pipe://www.myDomain.com/myService");
serviceHost = new ServiceHost(Program.g, baseAddress);
serviceHost.Open();
} catch (Exception ex) {
Debug.WriteLine(DateTime.Now + " my_WindowsService.myServiceHost .startWCFService() failed. " + ex.Message);
throw ex;
}
}
}
}
ServiceContract インターフェース:
[ServiceContract(Namespace = "http://mylocalhost/myService")]
public interface IGlobal_ServiceContract {
[OperationContract]
List<MyObject> getMyObject();
}
ServiceContract オブジェクト:
namespace my_WindowsService {
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
[DataContract]
public class Global : IGlobal_ServiceContract {
[DataMember]
public static List<MyObject> myObject { get; set; }
public List<myObject> getMyObject() {
return Global.myObject;
}
}
}
MyObject:
namespace my_WindowsService {
public class MyObject(){
public int x = 0;
}
}
ありがとう!