3

我有一个想要部署到 Windows Azure 存储中的公共容器的 WPF 应用程序。

我尝试了什么:

1. VISUAL STUDIO 2012 出版向导

我尝试直接从 Visual Studio 2012 中的 ClickOnce 发布向导中使用容器 url。我收到以下错误:

连接失败,出现以下错误:无法创建网站 Web 服务器似乎没有安装 FrontPage 服务器扩展。如果安装了 FrontPage 服务器扩展,则可能会出现此错误,因为 _vti_bin 虚拟目录未标记为可执行文件。要更正此问题,请运行 Internet 信息服务管理器,选择有问题的 Web 服务器,然后使用检查服务器扩展命令

2. 添加工具

经过一番研究,我认为我需要安装2012 Visual Studio Authoring Extensions。那并没有解决问题。

进一步的研究表明,直接使用带有博客存储 url 的发布向导是行不通的。

3. 第三方上传工具

所以我所做的是发布到我计算机上的本地文件,然后使用工具将这些文件上传到 blob 存储。(我使用了 AZURE EXPLORER

在我将本地发布文件夹的全部内容上传到 Azure Blob 存储后,我在浏览器中请求了 Blob 存储 URL,但什么也没做,因此我使用了该 URL,并以 setup.exe 结束了它。该文件是在本地下载的,我运行了它。这产生了错误。我也尝试使用 .Application 文件并得到相同的错误。

4.重新上传

我再次上​​传了文件,覆盖了当前文件,认为它们第一次可能被损坏。这并没有解决它。

5. 试过SETUP.EXE、PUBLISH.HTM & APPNAME.APPLICATION

如果我使用 setup.exe、publish.htm 或 appname.application 文件,也会产生同样的错误。


开始编辑 #2

6. 确认 MIME 类型和 .DEPLOY 扩展名

在阅读了@Gaurav Mantri 在评论中建议的文章后,我确认我的发布选项已经检查了将 .deploy 添加到 dll 的选项,并且我还确认根据这篇关于 ClickOnce MIME 类型的文章正在使用正确的 MIME 类型. 这些设置已经正确到位,因此不能解决我的问题。

结束编辑#2


错误:

以下是我在尝试从 azure blob 存储运行 setup.exe 文件时遇到的错误:

错误摘要 下面是错误摘要,这些错误的详细信息在日志后面列出。* C:\Users\Jordan\Downloads\FTC_Application (1).application 的激活导致异常。检测到以下失败消息: + 下载 http://******/FTC_Application/FTC_Application.application 未成功。+ 远程服务器返回错误:(500) 内部服务器错误。

组件存储事务失败摘要未检测到事务错误。

警告 此操作期间没有警告。

操作进度状态 * [10/5/2013 9:39:52 AM]:激活 C:**********\Downloads\FTC_Application (1).application 已启动。

错误详细信息 在此操作期间检测到以下错误。* [10/5/2013 9:39:52 AM] System.Deployment.Application.DeploymentDownloadException(未知子类型)- 下载 http://*********/FTC_Application/FTC_Application.application 未成功。- 来源:System.Deployment - 堆栈跟踪:在 System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
....为便于阅读删除了堆栈跟踪详细信息 .................... System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state) --- 内部异常 --- System.Net.WebException - 远程服务器返回错误:(500) 内部服务器错误。- 来源:系统 - 堆栈跟踪:System.Net.HttpWebRequest.GetResponse() at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)

组件商店交易详情 没有可用的交易信息。

问题:

有人可以帮我确定为什么我在运行 ClickOnce 部署文件(setup.exe 或 appname.application 或 publish.htm)时从 Azure Blob 存储中收到(500) Internal Server Error错误。

第二次编辑后的跟进: 问题:这可能是由于仅对项目使用测试签名引起的吗?

更新:

我已确认您不能将内置发布向导与 azure blob 存储一起使用。所以需要第三方上传工具。所有文件都可以从 azure blob 容器公开下载。但如果我使用建议的网址:

http://{AzureAccountName}.blob.core.windows.net/{BlobContainerName}/{ApplicationName}.application

ApplicationName.application 文件将下载,但是当我单击它时,会生成上面引用的错误。

4

1 回答 1

3

没错,您不能直接从 Visual Studio 发布到 Blob 存储。正如 Gaurav 评论中引用的文章中所述,您应该能够在本地发布文件并上传它们。

话虽如此,请检查 blob 存储中容器的权限,并确保对 blob 具有公共读取访问权限。容器可以是私有的,但 blob 不能。您至少应该能够打开 publish.htm 文件(假设它在容器中,而不是在容器中的文件夹中)。

还要确保你的安装 URL 指向 blob 存储容器的顶层文件夹,这样当它确实可以访问文件时,它会正确找到文件。

为确保不是您的计算机有问题,请尝试此链接到我已发布到 blob 存储的测试 clickonce 应用程序的发布页面。

于 2013-10-18T18:11:47.307 回答