C# 从浏览器运行WCF方法
我正在VisualStudio2010中使用C#创建一个非常基本的WCF服务。我想知道是否可以通过键入以下内容直接从浏览器运行我的方法:C# 从浏览器运行WCF方法,c#,wcf,C#,Wcf,我正在VisualStudio2010中使用C#创建一个非常基本的WCF服务。我想知道是否可以通过键入以下内容直接从浏览器运行我的方法://localhost:49815/Service1.svc/methodName(parameterValue) 这是我的代码的精髓 接口: using ... namespace WcfService1{ [ServiceContract] public interface IService1{ [OperationCo
//localhost:49815/Service1.svc/methodName(parameterValue)
这是我的代码的精髓
接口:
using ...
namespace WcfService1{
[ServiceContract]
public interface IService1{
[OperationContract]
[WebGet]
string echoWithGet(string s);
[OperationContract]
[WebInvoke]
string echoWithPost(string s);
}
}
方法:
public string echoWithGet(string s ){
return "Get: "+s;
}
public string echoWithPost(string s){
return "Post: " + s;
}
这并不能回答您的问题,但它将使您的生活更容易让您的服务变得RESTful(或类似REST)。虽然您可以使用WCF实现这一点,但我强烈建议您看看
还有其他可用于创建RESTful服务的替代方法,例如或。是的,如果服务配置正确,您可以在浏览器中调用这些方法,尽管URL语法错误 要从浏览器调用WCF方法,您需要做两件事:
- 在方法上使用
和[WebGet]
属性,这是您已经完成的[WebInvoke]
- 对服务的端点使用
,并启用webHttpBinding
行为。有关示例配置,请参见,但相关部分包括:webHttp
请注意,web调用方法的默认值是POST。从技术上讲,您可以通过浏览器执行这些操作,但这要困难得多(您必须创建本地HTML表单,或者使用Javascript控制台,或者类似的工具),但是只需请求正确的URL即可调用<service> <endpoint behaviorConfiguration="webBehavior" binding="webHttpBinding" contract="MyServiceContract" /> </service> <endpointBehaviors> <behavior name="webBehavior"> <webHttp /> </behavior> </endpointBehaviors>
方法 此外,如果您的方法返回比字符串更复杂的内容,WCF将尝试将其序列化为JSON;您可能需要在结果页面上“查看源代码”才能看到它。一个直截了当的答案。 对于GET方法,可以使用浏览器查看结果。 对于POST方法,如果直接粘贴POST方法的url,则不能使用浏览器。WebGet
为了实现POST,您可以创建HTML表单或使用FIDDLER查看结果。只是好奇。。。您尝试过了吗?另请参见:是的,如果您通过“尝试”引用的是通过我建议的格式调用的方法。您需要向我们显示您正在使用的服务器端配置!尤其是绑定是至关重要的-您使用的是哪一种???@user2635032您可以使用建议的格式做任何您想要的事情,但不完全是您建议的格式;我给出的链接包含了一个正确格式的示例。这个答案可能有误导性,因为它听起来像是您只能使用
从浏览器访问WCF方法。是这样吗?那么webHttpBinding
指令呢?您还需要一件事…urihttp://localhost:49815/MyService.svc/methodName?parameterName=value