ClickOnce部署从URL运行失败

本文关键字:运行 失败 URL 部署 ClickOnce | 更新日期: 2023-09-27 18:02:07

我在WPF应用程序中打开ClickOnce应用程序时遇到问题。

当我尝试在Internet Explorer中打开http:/myServerName/ReportServer/ReportBuilder/ReportBuilder_3_0_0_0.application?(注意一个/故意丢失)时,一切都很好。报表构建器正在启动,没有问题。

如果我尝试在Mozilla中做同样的事情-它下载应用程序文件,当我试图运行它时,我得到一个错误:

无法下载应用程序。

现在尝试打开报表生成器从我的应用程序我运行:

WebBrowser wb = new WebBrowser();
wb.Navigate("http:/myServer/ReportServer/ReportBuilder/ReportBuilder_3_0_0_0.application?");

(注意故意少了一个/)我得到了和Mozilla一样的错误。如果我尝试按Ctrl+Click代码中的链接,也会发生同样的事情。

注意:我把默认浏览器设置为Internet explorer。

出现以下错误:

Below is a summary of the errors, details of these errors are listed later in the log.
        * Activation of C:'Users'Deividas'AppData'Local'Microsoft'Windows'INetCache'IE'D5SZ3L71'ReportBuilder_3_0_0_0[1].application resulted in exception. Following failure messages were detected:
                + Downloading file:///C:/Users/Deividas/AppData/Local/Microsoft/Windows/INetCache/IE/D5SZ3L71/RptBuilder_3/MSReportBuilder.exe.manifest did not succeed.
                + Could not find a part of the path 'C:'Users'Deividas'AppData'Local'Microsoft'Windows'INetCache'IE'D5SZ3L71'RptBuilder_3'MSReportBuilder.exe.manifest'.
                + Could not find a part of the path 'C:'Users'Deividas'AppData'Local'Microsoft'Windows'INetCache'IE'D5SZ3L71'RptBuilder_3'MSReportBuilder.exe.manifest'.
                + Could not find a part of the path 'C:'Users'Deividas'AppData'Local'Microsoft'Windows'INetCache'IE'D5SZ3L71'RptBuilder_3'MSReportBuilder.exe.manifest'.

堆栈跟踪:

Following errors were detected during this operation.
        * [2015-07-10 13:52:41] System.Deployment.Application.DeploymentDownloadException (Unknown subtype)
                - Downloading file:///C:/Users/Deividas/AppData/Local/Microsoft/Windows/INetCache/IE/D5SZ3L71/RptBuilder_3/MSReportBuilder.exe.manifest did not succeed.
                - Source: System.Deployment
                - Stack trace:
                        at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
                        at System.Deployment.Application.SystemNetDownloader.DownloadAllFiles()
                        at System.Deployment.Application.FileDownloader.Download(SubscriptionState subState)
                        at System.Deployment.Application.DownloadManager.DownloadManifestAsRawFile(Uri& sourceUri, String targetPath, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation)
                        at System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest, String targetDir, Uri deploymentUri, IDownloadNotification notification, DownloadOptions options, Uri& appSourceUri, String& appManifestPath)
                        at System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest, String targetDir, Uri deploymentUri, Uri& appSourceUri, String& appManifestPath)
                        at System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
                        at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
                        at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
                        at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
                --- Inner Exception ---
                System.Net.WebException
                - Could not find a part of the path 'C:'Users'Deividas'AppData'Local'Microsoft'Windows'INetCache'IE'D5SZ3L71'RptBuilder_3'MSReportBuilder.exe.manifest'.
                - Source: System
                - Stack trace:
                        at System.Net.FileWebRequest.EndGetResponse(IAsyncResult asyncResult)
                        at System.Net.FileWebRequest.GetResponse()
                        at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
                --- Inner Exception ---
                System.Net.WebException
                - Could not find a part of the path 'C:'Users'Deividas'AppData'Local'Microsoft'Windows'INetCache'IE'D5SZ3L71'RptBuilder_3'MSReportBuilder.exe.manifest'.
                - Source: System
                - Stack trace:
                        at System.Net.FileWebResponse..ctor(FileWebRequest request, Uri uri, FileAccess access, Boolean asyncHint)
                        at System.Net.FileWebRequest.GetResponseCallback(Object state)
                --- Inner Exception ---
                System.IO.DirectoryNotFoundException
                - Could not find a part of the path 'C:'Users'Deividas'AppData'Local'Microsoft'Windows'INetCache'IE'D5SZ3L71'RptBuilder_3'MSReportBuilder.exe.manifest'.
                - Source: mscorlib
                - Stack trace:
                        at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
                        at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
                        at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
                        at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean useAsync)
                        at System.Net.FileWebStream..ctor(FileWebRequest request, String path, FileMode mode, FileAccess access, FileShare sharing, Int32 length, Boolean async)
                        at System.Net.FileWebResponse..ctor(FileWebRequest request, Uri uri, FileAccess access, Boolean asyncHint)

单击Details时的完整错误日志文件:http://pastebin.com/eLJPq9qr

ClickOnce部署从URL运行失败

我用这个简单的方法克服了这个问题:

Process p = new Process();
p.StartInfo.FileName = "iexplore.exe";
p.StartInfo.Arguments = "http://myServer/ReportServer/ReportBuilder/ReportBuilder_3_0_0_0.application?/Folder1/Folder+two/report1";
p.Start();

它启动报表构建器,您可以选择指定打开所需报表的路径(已连接到报表服务器)。希望对大家有所帮助