Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从浏览器运行WCF方法_C#_Wcf - Fatal编程技术网

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

我正在VisualStudio2010中使用C#创建一个非常基本的WCF服务。我想知道是否可以通过键入以下内容直接从浏览器运行我的方法:
//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
    行为。有关示例配置,请参见,但相关部分包括:

     <service> 
        <endpoint behaviorConfiguration="webBehavior" binding="webHttpBinding" contract="MyServiceContract" /> 
    </service> 
    
    <endpointBehaviors> 
        <behavior name="webBehavior"> 
            <webHttp /> 
        </behavior> 
    </endpointBehaviors> 
    
    请注意,web调用方法的默认值是POST。从技术上讲,您可以通过浏览器执行这些操作,但这要困难得多(您必须创建本地HTML表单,或者使用Javascript控制台,或者类似的工具),但是只需请求正确的URL即可调用
    WebGet
    方法

    此外,如果您的方法返回比字符串更复杂的内容,WCF将尝试将其序列化为JSON;您可能需要在结果页面上“查看源代码”才能看到它。

    一个直截了当的答案。 对于GET方法,可以使用浏览器查看结果。 对于POST方法,如果直接粘贴POST方法的url,则不能使用浏览器。
    为了实现POST,您可以创建HTML表单或使用FIDDLER查看结果。

    只是好奇。。。您尝试过了吗?另请参见:是的,如果您通过“尝试”引用的是通过我建议的格式调用的方法。您需要向我们显示您正在使用的服务器端配置!尤其是绑定是至关重要的-您使用的是哪一种???@user2635032您可以使用建议的格式做任何您想要的事情,但不完全是您建议的格式;我给出的链接包含了一个正确格式的示例。这个答案可能有误导性,因为它听起来像是您只能使用
    webHttpBinding
    从浏览器访问WCF方法。是这样吗?那么
    指令呢?您还需要一件事…uri
    http://localhost:49815/MyService.svc/methodName?parameterName=value