一个WCF服务,我有一个服务合同如下:没有调用客户端或代理
[ServiceContract]
public interface IWebProxyService
{
[OperationContract]
string GetSomeData();
}
我也曾尝试在合同上这个属性。
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "/GetFormsBaseUrl")]
是否有可能在没有任何服务引用/合同的情况下从另一个应用程序中调用此方法。
我已经试过以下(从调用应用程序)变化的一串:
public static void GetSomeData(string webServiceProxyURL)
{
WebRequest request = WebRequest.Create(webServiceProxyURL);
request.Method = "GET";
request.ContentType = "application/json";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
Console.WriteLine("Response: \n" + responseFromServer);
}
我得到一个“远程服务器返回错误:(400)错误的请求”。网络例外状态是“System.Net.WebExceptionStatus.ProtocolError”我做错了什么,我怎么能从其他应用程序调用WCF方法?
您没有向服务发送任何内容。你能指望什么? –
我想调用返回一个字符串的方法。它没有参数?那么你究竟希望我发送到服务器来调用该方法? –
假设它是一个SOAP Web服务,我希望你发送一个SOAP信封给它。我不知道你的代理类出了什么问题,但作为一个故障排除机制,请尝试使用“添加服务引用”创建一个小客户端应用程序,让它工作,然后检查由工作应用程序发送的XML。然后让你的真实应用发送相同的。 –