使用ASP.NET Web应用程序部署WCF服务

时间:2012-02-01 00:26:43

标签: wcf asp.net-mvc-3 deployment

我在部署我的WCF服务和ASP.NET Web应用程序时遇到了一些困难。我已经在我的本地机器上工作了一切(定义了我的地址,绑定,合同),我可以从我的ASP.NET(MVC)Web应用程序调用该服务。 (现在的基本网址是http://localhost:####/Design_Time_Address/Fully/Qualified/Service/

不幸的是,一旦我尝试部署,事情往往会爆发。

这是我目前正在做的事情。如果一个或多个步骤不正确,请告诉我。

  1. 我的ASP.NET MVC项目中有一个对WCF服务的服务引用。
  2. 我首先尝试使用Web部署来部署MVC项目。 MVC部分工作正常,但找不到我的服务。 (虽然,有趣的是,我可以在我的主机上看到我的服务的DLL。)
  3. 所以,在搞砸了一下后,我尝试通过SFTP单独上传我的服务。我能够在某一时刻点击.svc文件,但最近我一直收到错误。 (我假设这是因为我一直在努力解决这个问题并将其搞砸了。)
  4. 我在这里有点困惑,因为我不明白地址应该是什么,或者我应该如何在WCF App.config文件中配置它以便我的MVC应用程序可以访问它。
  5. 就像我说的那样,在我不得不部署之前我很好,不幸的是,我找不到任何可以帮助我的教程。

    我不明白我需要做些什么设置才能通过主机服务器通过我的MVC应用程序访问我的服务?我是否需要在我的MVC项目中提供服务参考,就像我现在正在做的那样?我是否必须直接在WCF服务中配置某些内容?是否可以只进行Web部署和Stuff Just Works(TM)?

    感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

你可以走小步。

  1. 创建一个新的Visual Studio解决方案。
  2. 向其添加一个新的ASP.NET Empty Web Application项目。
  3. 向此应用程序添加新的WCF服务项目。
  4. 将您的应用程序发布到服务器。
  5. 确保该服务已成功发布到IIS,方法是导航到IIS(http://host/myservice/service1.svc)。
  6. 将新的ASP.NET MVC 3应用程序添加到您的解决方案中。这将生成一个强类型客户端代理类,允许您使用该服务并修改您的web.config,以便添加一个<system.serviceModel>部分,其中包含一个客户端端点,其地址指向您已发布的WCF服务
  7. 在ASP.NET MVC 3应用程序中实现一些将调用服务方法的代码
  8. 在本地运行ASP.NET MVC 3应用程序,它应该能够调用已发布的服务。
  9. 发布ASP.NET MVC 3应用程序
  10. 现在您已经准备好了所有准备开始在服务中实现功能的内容。然后,您可以通过更改ASP.NET MVC 3应用程序的web.config文件中的客户端端点或离开它并发布服务来本地测试服务。

    我个人不在Visual Studio中使用Add Service Reference对话框。当它触及我的web.config时我讨厌它。我不喜欢在未经我的许可或验证的情况下触及我的代码。我使用命令行svcutil.exe为我的WCF服务生成强类型客户端。所以我输入生成2个文件的svcutil.exe http://localhost:1234/service1.svc命令:一个包含客户端代理的.cs文件和一个包含服务端点配置的app.config文件(由于我更喜欢​​修改web.config,我通常扔掉它。我的手动申请)。然后我将.cs文件复制到我的客户端应用程序。

答案 1 :(得分:0)

所以,事实证明问题很容易解决......不幸的是,在这种情况下,我是一个完整的菜鸟。我创建了一个WCF服务库,而不是创建WCF服务应用程序。切换到WCF服务应用程序,设置我的终点,将DEPLOYED服务添加到我的MVC应用程序,它就像一个魅力。

今天感觉像个新手......