У меня есть приложение WinForms для таргетинга .NET 2.0. У нас есть отчет о том, что одна из наших кнопок не работает, все, что она делает, открывает веб-страницу в браузере по умолчанию. Просматривая журналы, я вижу, что Process.Start()
терпит неудачу, потому что он не может найти файл. Проблема в том, что мы передаем строковый url в метод Start()
, поэтому я не могу понять, почему он генерирует это сообщение.Ошибка Process.Start (url)
Вот исключение из журналов:
System.ComponentModel.Win32Exception: The system cannot find the file specified
at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start(String fileName)
at *namespace*.Website.LaunchWebsiteAsync(String url)
The system cannot find the file specified
at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start(String fileName)
at *namespace*.Website.LaunchWebsiteAsync(String url)
И для полноты картины:
Process.Start(url);
Где URL имеет значение что-то вроде: "http://www.example.com"
После поиска в Интернете я столкнулся с this blog с той же проблемой. Разница в том, что это было характерно для Windows 8. Он обнаружил, что некоторые браузеры не регистрируются правильно при установке. С тех пор это было исправлено, поскольку браузеры выпустили обновления. (Блог вскоре после выпуска Windows 8).
Я мог понять это, если наш клиент не установил браузер. Но это не так. Я также загрузил виртуальную машину Windows XP и попытался удалить все ассоциации для типов файлов .html
, URL: HyperText Transfer Protocol
и т. Д. Из окна «Параметры папки» на вкладке «Типы файлов». Но я не могу воспроизвести проблему.
Есть ли у кого-нибудь идеи, почему это может закончиться ошибкой и/или как я могу воспроизвести ошибку?
В качестве примечания стороны, наш клиент работает под управлением Windows XP.
вы могли бы дать нам строку URL-адрес, который вы используете? это может помочь! – Shamim
Возможный дубликат [Process.Start (url), разбитый на Windows 8/Chrome - есть альтернативы?] (Http://stackoverflow.com/q/12206368/580951). – Romoku
Вы уверены, что 'http: // www.example.com' передается на машине клиента, а не' www.example.com'? Возможно, вы могли бы добавить код регистрации в блок try-catch, который регистрировал URL-адрес, на который был сделан URL. –