2016-03-31 2 views
-1

Приведенный ниже код отлично работает при отладке с визуальной студии, но при публикации его на сервере IIS не работает. Просто ничего не происходит. Я угадываю некоторые проблемы с безопасностью. Вопрос в том, есть ли какие-либо альтернативы для System.Diagnostics.Process.Start, чтобы открыть URL-адрес в новом окне или вкладке? Или как заставить Process.Strat работать в IIS? благодаряКак открыть новое окно браузера из файла обработчика asp.net?

public void ProcessRequest(HttpContext context) 
    { 
     Context = context; 
     if (context.Request.QueryString["path"] == null) 
     { 
      return; 
     } 
     string path = Context.Server.UrlDecode(Context.Request.QueryString["path"]); 

     var item = DataServer.GetItem(path); 
     if (item == null) return; 

     System.Diagnostics.Process.Start(item["sourcePath"].ToString()); 
} 
+5

Вы должны понимать разницу между _client-side_ кода и _SERVER-side_ кода. Вы не можете этого сделать. – SLaks

+0

Вы не понимаете вопроса и проблемы. Этот код работает в отладке. –

+1

@ZuluZ Он работает в отладке, потому что при отладке ваш сервер и клиент - это одна и та же машина. – vesan

ответ

1

Ваш файл открывается на стороне сервера, поэтому клиент не видит ничего. Если вы хотите, чтобы ваш клиент открыл документ, вам необходимо создать ответ, записать содержимое файла в ответ и указать тип mime (в свойстве ContentType). Таким образом, браузер клиента определит, какую программу использовать для открытия этого документа (например, ContentType «application/pdf» открывается с помощью Acrobat, «приложение/msword» открывается с помощью Microsoft Word и т. Д.).

См: ASP.NET file download from server И http://www.sitepoint.com/web-foundations/mime-types-summary-list/

+0

хороший пример, спасибо, но что, если я хочу открыть url для b, который открывается в IE, а не файл? –

+0

Тогда размещение контента должно быть встроенным, а не вложением. В этом случае IE должен иметь плагины для правильного отображения этого типа mime в браузере вместо вызова внешнего приложения. – derloopkat

+0

проблема в том, что я не хочу открывать файл, но aspx-страницу. –

Смежные вопросы