【问题标题】:Deploy ClickOnce wpf application to Windows Azure Blob Storage将 ClickOnce wpf 应用程序部署到 Windows Azure Blob 存储
【发布时间】:2013-10-05 15:59:45
【问题描述】:

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

我尝试了什么:

1. VISUAL STUDIO 2012 发布向导

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

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

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 在 cmets 中建议的文章后,我确认我的发布选项已经检查了将 .deploy 添加到 dll 的选项,并且我还确认按照 this article about ClickOnce MIME types 使用了正确的 MIME 类型. 这些设置已经正确到位,因此不能解决我的问题。

结束编辑#2


错误:

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

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

组件商店交易失败摘要没有交易错误 检测到。

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

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

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

COMPONENT STORE TRANSACTION DETAILS 没有交易信息 可用。

问题:

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

第二次编辑后的跟进: 问题:这可能是因为项目只使用了 testsign 造成的吗?

更新:

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

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

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

【问题讨论】:

  • 你看过这篇博文吗:robindotnet.wordpress.com/2011/02/13/…
  • 感谢 @GauravMantri,那篇文章正是我发布 ClickOnce 应用程序并将其上传到 Azure 的方式。我也仔细检查了我的 MIME 类型,一切都是正确的。
  • 您是否使用过 MageUI 创建 ClickOnce 文件?当我在 Cerebrata 时,我们的应用程序是通过 ClickOnce 部署的。当时我们使用 MageUI 来创建文件。
  • @GauravMantri 不,我没有使用 Mage(虽然我看到很多提到它),这是我的第一个 WPF 应用程序。我将下载 mgaeUI 并尝试一下。
  • MageUI 是 .net Framework 的一部分,所以我认为您不需要下载它。只需确保根据应用程序的 .net 框架使用正确的版本即可。

标签: .net wpf visual-studio-2012 azure clickonce


【解决方案1】:

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

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

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

为确保不是您的计算机有问题,请尝试使用我已发布到 blob 存储的测试 clickonce 应用程序的 link to the publish page

【讨论】:

    猜你喜欢
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    • 1970-01-01
    • 2011-09-26
    • 1970-01-01
    相关资源
    最近更新 更多