WCF (svc) 服务,但客户端希望像“.asmx”一样进行连接
我有这样的场景。客户要求我们提供一个 WebService。我创建了一个 WCF 服务。在我们向他们发送了网络服务描述的 URL 后,客户说
事实上我们无法使用 WCF 服务,你可以将其发布到网络上吗 服务?
现在我想知道,他们要求我提供 asmx...对吧? 有没有什么方法可以让我“提供”我的 WCF 服务作为 asmx 服务,这样我就不必重写整个事情?
我的第一个“解决方案”是让 .asmx 文件直接调用我的 .svc 文件......我不知道。我还没有尝试过,但我正在朝那个方向前进。
任何想法将不胜感激。
托尼
I have this scenario. Client requested us to have a WebService. I created a WCF Service. After we sent them our url to the web service description, client says
As it is we cannot consume a WCF
service, can you publish it a web
service?
Now i am wondering, they are asking me for a asmx... right?
Is there any way that i can "offer" my WCF service as an asmx service so i don't have to rewrite the whole thing?
my first "solution" is to have an .asmx file calling my .svc files directly... i don't know. I havent tried but i am heading on that direction.
Any ideas would be highly appreciated.
Tony
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是完全可行的。只需使用通过 basicHttpBinding 或 wsHttpBinding 公开服务的端点。 URL 的“文件扩展名”对客户端没有任何影响,只影响请求/响应的内容。
这是对另一个SO问题的引用:
WCF 服务的 REST/SOAP 端点
It is completely do-able. Just use an endpoint that exposes the service using basicHttpBinding or wsHttpBinding. The "file extension" of the URL doesn't make any difference to the client, only the content of the rerquest/response.
Here's a reference to another SO question:
REST / SOAP endpoints for a WCF service
这是很有可能的。按照下面提到的步骤操作,您将能够将 WCF 服务公开为 ASMX 端点。
我的 WCF 类名称为 Service1(来自基本 WCF 服务),并且该类存在于当前命名空间中。因此,我将类名称更改为 mynamespace.Service1
一些更改是如下所示的代码 -
在标签中的 web.config 中添加以下代码
在接口上添加以下 2 个属性(在 WCF 的 servicecontract 上)
在每个操作合约上添加[WebMethod]属性。
<前><代码>[操作合同]
[网络方法]
字符串 GetData(int 值);
您的服务现在也可以被 asmx 客户端使用。
It's very much possible.Follow the steps mentioned below and you'll be able to expose WCF service as ASMX endpoint.
I have WCF class name as Service1(from the basic WCF service) and this class is present in current NameSpace. So I changed class name as mynamespace.Service1
Some changes is code as shown below-
In web.config in Tag add following code
Add following 2 attribute on interface(on servicecontract of WCF)
Add [WebMethod] attribute on each operation contract.
your service can now be consumed by asmx client too.