我有一个asmx网络服务。在客户端,我不想使用app config。所以我试图使用ChannelFactory服务来阅读我的应用程序的配置。:
BasicHttpBinding myBinding = new BasicHttpBinding();
并设置app.config中的所有属性。然后我定义了我的端点和通道工厂:
EndpointAddress myendpoint = new EndpointAddress("http://localhost:<portNumber>/<serviceName>.asmx");
ChannelFactory<IServiceInterface> myCh = new ChannelFactory<IServiceInterface>(myBinding, myendpoint);
IServiceInterface service = myCh.CreateChannel();
这是我从频道调用方法时遇到的错误:
System.Web.Services.Protocols.SoapException: Server did not recognize the value of HTTP Header SOAPAction: http://localhost/<serviceName.asmx/IServiceInterface/<MethodName>.
at System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest()
at System.Web.Services.Protocols.SoapServerProtocol.RouteRequest
答案 0 :(得分:2)
您可以做的一件事是在服务的界面中更改OperationContract属性中的Action属性。
[ServiceContract]
interface IService
{
[OperationContract(Action = "http://tempuri.org/GetString")]
string GetString();
}
我不确定这是最好的解决方案,搜索另一个解决方案,如果发现任何问题会提示。但这个适合我。