我正在开发一个通过clickonce部署项目的项目。这些文件所在的网站只接受HTTPS流量,如果您尝试通过HTTP连接,我们的siteminder代理会将您重定向到HTTPS登录表单。出于安全原因,我们无法禁用siteminder代理或启用HTTP。 在应用程序文件中,我有一个代码库,它引用了清单的绝对路径,它是通过HTTPS
<dependency>
<dependentAssembly dependencyType="install" codebase="https://psaportal.ilab.test.com/testprinting/Application_Files/testprint_1_0_0_1/testprint.exe.manifest" size="10147">
<assemblyIdentity name="testprint.exe" version="1.0.0.1" publicKeyToken="9a078649ee05e0e7" language="neutral" processorArchitecture="msil" type="win32" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<dsig:DigestValue>2nch1T0SmlAycmePobtg9F1qF7c=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
在运行wireshark并解码SSL流量时(我在wireshark中使用服务器的私钥来解密SSL流量)。我看到应用程序的清单文件的请求是通过HTTPS(这是一件好事)。但是当clickonce尝试下载testprint.exe.deploy和其他相应的文件时,它总是通过HTTP并且siteminder跳入并重定向请求,这些请求会导致clickonce安装错误。
我试图在清单文件中具体指定绝对代码库引用,但是当Clickonce安装程序下载清单时,我开始收到入口点错误。
清单文件中的当前依赖项部分如下所示:
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="testprint.exe" size="107008">
<assemblyIdentity name="testprint" version="1.0.0.1" language="neutral" processorArchitecture="msil" />
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<dsig:DigestValue>dm2nJsu/5UyaEXSDmnISwfnE9MM=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
我已经验证了应用程序,清单和部署文件都在同一URL下的网站,并且SSL证书是有效的证书。
我们已经尝试过生成应用程序和清单文件的每个组合,因为我们正在梦想并正在寻找其他解决方案。
应用程序正在使用.NET 3.5,我们尝试通过VS2008,VS2010和mage构建应用程序和清单文件但没有成功。
有谁知道如何让所有部署文件始终通过HTTPS下载?
答案 0 :(得分:0)
这也发布在MSDN ClickOnce论坛的this thread中,并在那里得到了一些回复。只是发布这个以防其他人想要查看其他答案。
答案 1 :(得分:0)
根据您的描述,它听起来像证书或Web服务器配置问题。您是否尝试过Serve and Client Configuration Issues in ClickOnce Deployments?
中的指导