【发布时间】:2015-05-19 17:40:15
【问题描述】:
我完全是在这个论坛上提问的新手 - 我希望我能正确地提出这个问题。
我要解决的问题是:我有一个用于 Web 服务的 Visual Studio 2010 项目。完成这项工作的类在“.asmx”文件中定义。该类继承自“System.Web.Services.WebService”类。
它在服务器上的 IIS 上愉快地运行。客户端可以对 Web 服务进行 SOAP 调用,它会处理请求并发送响应。没关系。
问题是我希望它在无法安装 IIS 的 Windows 7 PC 上运行。所以我希望它作为 Windows 服务运行(如果可能的话)。该服务的唯一“客户端”将是该 PC 上的用户。
换句话说,我希望将 .asmx 中的所有代码作为 Windows 服务运行(如果可能)。
在理想情况下,我可以重复使用现有的 .asmx(如果可能),而不必将所有代码复制并粘贴到新的 Windows 服务解决方案中。
所以我的目标是找到将 .asmx Web 服务作为 Windows 服务运行的最新方法。我希望有人能指出我如何实现这一目标的正确方向。
我已经做了很多搜索,看起来这很有可能做到。问题是那里的许多解决方案似乎有点过时了。或者我把我的概念搞混了。
基于“How can I deploy my WCF Service without IIS?”,我看了一些东西。
我最接近的是:“https://msdn.microsoft.com/en-us/library/ms751414.aspx”。然而,在这个例子中,实际工作的类(计算器)实际上包含在服务本身中。我原以为你可以把它们分开。换句话说,让服务创建来自我的 .asmx 文件的类的实例。
我遇到的第二个关闭是“https://msdn.microsoft.com/en-us/library/bb332338.aspx#msdnwcfhc_topic4”,但这是 .NET 3.0 和 VS 2005。我还在努力理解如何将现有的类链接到服务中。
我遇到的其他解决方案建议添加对“Microsoft.Web.Services3.dll”、“System.Web.dll”和“System.Web.Services.dll”的引用,尽管有些人似乎认为这是称为 WSE,它在 .net 4.0 中已更新为 WCF,因此我不应该使用它。
关于我从哪里开始的任何指示?
【问题讨论】:
-
IIS Express 在 Windows 7 上运行,应该可以正常运行您的 asmx microsoft.com/en-us/download/details.aspx?id=34679
-
与论坛网站不同,我们不使用“谢谢”、“感谢任何帮助”或Stack Overflow 上的签名。请参阅“Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?.
-
您使用的是哪个版本的 .NET?您能够使用哪些版本?顺便说一句,WSE 早在 .NET 4.0 之前就已经过时了。在任何情况下都不要使用它。
-
约翰,我使用的是 .NET 4.0。
标签: c# visual-studio-2010 web-services wcf asmx