4

我在同一台机器上使用 Windows 7 Ultimate x86 和 IIS 7。我想用 VS 2010 将 Silverlight 应用程序“网络部署”到这个 IIS 7。

我知道,我需要配置管理服务 (WMSVC) 和 Web 部署服务 (MsDepSvc),以便 VS 2010 中的 Web 部署任务能够工作。

查看我的 IIS 7 管理 UI (inetmgr.exe),我找不到执行此操作的条目“管理服务”。

我可以找到很多教程来做到这一点,但都在谈论 Windows Server 2008 和 IIS 7。

所以我的两个问题是:

1.) 有什么方法可以激活 IIS 7 UI 中的“管理服务”UI 条目?

2.) 如果没有,是否有任何带有 UI 的替代工具来执行此操作?

如果不清楚,我在说什么 - 这是一个教程的链接,其中 UI 条目“管理服务”显示在 IIS 7 中:

iis-7-远程管理

谢谢您的意见。

我刚刚发现,这里也正在讨论这个问题:

缺少管理服务委派图标

我尝试了建议的解决方案(Web 部署的自定义安装、脚本),但没有任何效果。

我错过了一点吗。Web 部署 3.0 的 msi 中一定存在错误。

4

1 回答 1

2

我仍然不知道为什么,但毕竟 VS 2010 内置方法“Web Deploy”对我不起作用。我刚刚放弃并编写了自己的部署批处理脚本,该脚本构建了我的应用程序并将所有相关数据复制到 IIS。

我想在这里为遇到同样问题的每个人发布这个批处理脚本。在使用这个脚本之前,有一些事情要记住:

1.)将 Local Copy = True 设置为 Silverlight Web 项目中所有引用的 DLL。

2.)每个 WCF RIA 服务都需要一个单独的 *.svc 文件。svc 文件需要包含完整的服务命名空间+名称以及用于实例化服务的工厂类。该文件的内容可能如下所示:

<%@ServiceHost language="C#" Debug="true" Service="Fullnamespace.Servicename" Factory="System.ServiceModel.DomainServices.Hosting.DomainServiceHostFactory"%>

我的情况是我所有的 svc 文件都在 zhClientBin 文件夹中。请记住,您必须自己编写它们并设置 Locaol Copy = True。另请记住,您必须在 SL 客户端中调用正确的 svc 文件。

这可能看起来像这样:

LoginContext _loginContext = new LoginContext(Globals.URI.getServiceUri("http://yourdomain/ClientBin/YourService.svc"));
LoadOperation<ServiceLog> _loadOperation = _loginContext.Load<ServiceLog>(_loginContext.LogInQuery(user.EMail, user.Passwort), LoginCallBack, true);

3.以下批处理脚本构建您的应用程序。然后它将文件复制到您的 IIS。对于调试问题,pdb 文件包含在 xap 文件中。请记住,批处理中的所有路径都与我的系统相关。你当然必须改变它们。也许您以此为灵感来构建您自己的脚本。

请非常小心此脚本,如果您不熟悉批处理语言,请不要使用它。它会在您的硬盘上删除并创建文件夹。使用风险自负

SET DestPath=D:\Sources Internet\www.MyDomain.de\%2
SET DevelopmentPath=D:\Sources\MyDomain\MyDomain.Web\%3

RD /S /Q "%DestPath%" 

MKDIR "%DestPath%"

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" "D:\Sources\MyDomain\MyDomain\MyDomain.sln" /p:Configuration=Debug;DeployOnBuild=true;DeployTarget=Package;_PackageTempDir="D:\Sources Internet\www.MyDomain.de"

DEL "%DestPath%\Web.config" /s /q

COPY "%DevelopmentPath%\Web.config" "%DestPath%\Web.config"

COPY "D:\Sources\MyDomain\MyDomain\Bin\Debug\MyDomain.pdb" "D:\Sources Internet\www.MyDomain.de\ClientBin\MyDomain.pdb"

CD /D D:\Sources Internet\www.MyDomain.de\ClientBin

REN *.xap *.rar

SET WINRAR="C:\Program Files\WinRAR"

%WINRAR%\WinRAR.exe a MyDomain MyDomain.pdb 

DEL MyDomain.pdb

REN *.rar *.xap

COPY "D:\Sources Internet\www.MyDomain.de\ClientBin\MyDomain.xap" "D:\Sources Internet\www.MyDomain.de\bin\MyDomain.xap"

请非常小心此脚本,如果您不熟悉批处理语言,请不要使用它。它会在您的硬盘上删除并创建文件夹。使用风险自负

使用这种方法,我不再需要 VS 2010 Web 部署,而且我还可以在 IIS 7.5 上运行和调试我的 SL 应用程序。

于 2013-01-22T10:33:45.567 回答