gpt4 book ai didi

c# - 如何从浏览器调用 WCF 服务 OperationContract?

转载 作者:太空狗 更新时间:2023-10-29 23:24:26 24 4
gpt4 key购买 nike

我创建了一个 WCF 4 网络服务并将其托管在我的 IIS 7 上,我在发布网络部分提供了以下 服务 URL:WCF 项目中:

http://localhost:8084/service1.svc

然后我将我发布的网站绑定(bind)到端口:4567 并在IIS 中输入:http

To checked it i clicked on `web site` at `IIS` and click on the browse. 
It open a following page at my browser:

enter image description here

这意味着 Web 服务已成功托管在 IIS 上。现在我想调用我的实例方法并在浏览器中返回输出。让我把 Iservice.csservice.svc.cs

的示例代码贴给你
#Iservice.cs:
namespace some.decryption
{
[ServiceContract]
public interface Iservice
{
[OperationContract, WebInvoke(Method = "GET", UriTemplate = "/getdata", ResponseFormat = WebMessageFormat.Json)]
string getdata();
}}

而我的service.svc.cs:

public bool getdata()
{
return somenamespace.getfetcheddll();
}

serviceDll.cs:

  namespace somenamespace{
internal static class UnsafeNativeMethods
{
_dllLocation = "some.dll";
[DllImport(_dllLocation, CallingConvention = CallingConvention.Cdecl)]
public static extern bool OnDecryption();
}

public static string getfetcheddll()
{
return UnsafeNativeMethods.OnDecryption();
}}

我应该如何从浏览器调用 getdata() 方法?

我已将 some.dll 放在同一个项目文件夹中。我应该在哪里做?

编辑:

我忘记粘贴我的web.config:

<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />

为此我关注了这个博客:walkthrough on creating

最佳答案

默认情况下 - HTTP 被翻译成 wsHttpBinding,这是一个 SOAP 服务,所以你不能只调用从浏览器。帮助页面上的 ?wsdl 后缀似乎也指向那个方向。

要测试 SOAP 服务,您需要一个支持 SOAP 的工具,例如 Microsoft WCF Test ClientSoapUI .

尝试使用 WCF 测试客户端 - 您可以使用该工具在帮助页面上显示的 URL 连接到您的服务吗?你看到你的服务了吗?

关于c# - 如何从浏览器调用 WCF 服务 OperationContract?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14159771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com