2015-07-10 83 views
1

我遇到了打开我的WPF应用程序的ClickOnce应用程序的问题。ClickOnce部署无法从URL运行

当我在Internet Explorer中尝试打开http:/myServerName/ReportServer/ReportBuilder/ReportBuilder_3_0_0_0.application?(注意一个/有意失踪)时,一切正常。 报告生成器正在启动,没有问题。

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

Cannot download the application.

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

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

(注意,一个/故意丢失) ,我也得到了同样的错误,如果它是Mozilla的。 同样的事情发生,如果我尝试Ctrl +单击我的代码中的链接。

注:我已将默认浏览器设置为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) 

完全错误日志文件的详细信息单击时: http://pastebin.com/eLJPq9qr

+1

这是一个ClickOnce应用程序,对吧? – Herdo

+1

是的,ReportServer中的Report Builder是ClickOnce应用程序,但我也在本地安装了Report Builder。 – Deividas

+1

您可以验证目录C:\ Users \ Deividas \ AppData \ Local \ Microsoft \ Windows \ INetCache \ IE \ D5SZ3L71 \ RptBuilder_3 \是否存在? – Herdo

回答

1

我设法克服这个简单的问题解决方案:

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(); 

它启动报告构建器,并可选择指定打开所需报告(已连接到报告服务器)的路径。 希望这可以帮助