Есть ли способ сделать удаленные звонки на веб-сервер разработки ASP.NET? - PullRequest
19 голосов
/ 17 марта 2009

I знаю , что, вообще говоря, это невозможно, то есть заставить другой компьютер вызывать сайт, размещенный на веб-сервере разработки ASP.NET, удаленно (обычно вы можете использовать только localhost: port для получения к нему).

Но мне было интересно, видел ли кто-нибудь или знает, как обойти это? Я являюсь разработчиком RESTful API в своем офисе, и я хотел бы, чтобы ребята из PHP тестировали API на моей машине, чтобы я мог подключить отладчик Visual Studio 2005, и мне было бы легче находить проблемы.

Основная проблема заключается в том, что моя машина является машиной Vista, и, к сожалению, разработанные мной API не работают под IIS7, даже в режиме Classic Application Pool (что исключает возможность их размещения на локальном IIS).

В качестве альтернативы, есть ли способ использовать IIS6 на другой машине для удовлетворения моих потребностей?

Обновление

На основании полученных мной советов и после долгих проб и ошибок с внесенными предложениями я смог заставить Squid выступать в качестве обратного прокси-сервера и делать именно то, что я хотел. Я писал об этом http://www.ashleyangell.com/index.php/2009/03/configuring-a-basic-reverse-proxy-in-squid-on-windows-website-accelerator/ на случай, если кто-то еще захочет сделать то же самое.

Ответы [ 10 ]

14 голосов
/ 25 мая 2010

Это значительно проще, чем опция Squid:

«Доступ к серверу разработки Visual Studio ASP.NET с iPhone»

Также есть обновление, которое хорошо работает и под Windows 7:

«Доступ iPhone к серверу разработки Visual Studio ASP.NET - обновление для Windows 7»

7 голосов
/ 14 августа 2010

Я только что попытался http://code.activestate.com/recipes/483732-asynchronous-port-forwarding/ успешно. Это скрипт Python, который просто перенаправляет трафик.

Предполагая, что машина, на которой работает ваш сервер разработки, - 192.168.42.42, а сервер разработки - на порту 12345, запустите сценарий (на том же компьютере) с аргументами командной строки

-l 192.168.42.42 -p 8000 -r 127.0.0.1 -P 12345

С другого компьютера вы можете получить доступ к серверу через http://192.168.42.42:8000.

Обязательно измените sender.handle_close, как отметил Дуайт Уокер в комментариях:

def handle_close(self):
    self.close()
    if len(self.receiver.to_remote_buffer) == 0:
        self.receiver.close()
3 голосов
/ 17 марта 2009

Разве вы не можете просто запустить IIS7 в Классическом режиме пула приложений ?

Веб-сервер разработки строго ограничен Localhost, вам необходимо либо декомпилировать и перекомпилировать его, либо установить какой-либо прокси на вашем компьютере.

И по несвязанной теме: Хотя Win2003 Server SP2 R2 должен поддерживаться до марта 2012 года, возможно, необходимо добавить поддержку IIS7 в ваше приложение, чтобы обеспечить возможность работы и на 2008 Server.

3 голосов
/ 17 марта 2009

Вы можете выполнять удаленную отладку на компьютере с IIS6. Посмотрите этот пост в блоге о том, как его настроить: http://blogs.iis.net/brian-murphy-booth/archive/2008/05/23/remoting-debugging-asp-net-applications-using-visual-studio-2008.aspx

Вот ссылка для vs2005: http://aspnet2holes.blogspot.com/2006/11/debug-aspnet-20-running-under-iis-60.html. Я все еще рекомендую проверить версию 2008 года, только для некоторых дополнительных комментариев.

2 голосов
/ 18 октября 2012

В основном я потратил 5 часов на выполнение этой работы, и, в конечном итоге, если вы хотите 5-минутное исправление, то вот так:

1. Port forward incoming traffic to your local ip on your network
TCP Any -> 3127-3128
TCP Any -> 80-81
TCP Any -> 8080
TCP Any -> 8000
TCP Any -> 8888
to
192.1681.1.3 (the local ip of the machine running .NET Dev server.)

2. Download SPI Port Forward

3. Heres the tricky part - Setup 2 forwarding rules as follows:
Local port: 8080 Remote: localhost Remote port 8080
Local port: 8080 Remote: localhost Remote port: .NET Dev server port

Without that second rule the .NET dev server wont serve the page

4. now visit your public IP address at port 8080 -- and you got it

Z

1 голос
/ 13 сентября 2011

Просто используйте простой туннель Java TCP. Загрузите это Java-приложение и просто верните трафик обратно. Нет необходимости возиться с IIS!

http://jcbserver.uwaterloo.ca/cs436/software/tgui/tcpTunnelGUI.shtml

В командной строке вы затем запустите java-приложение следующим образом ... Предположим, вам нужен внешний доступ через порт 80, а ваша стандартная среда отладки работает через порт 1088 ...

java -jar tunnel.jar 80 localhost 1088 (Также ответили здесь: Доступ к серверу разработки asp. Net, внешнему по отношению к ВМ)

1 голос
/ 17 марта 2009

Возможно, вы захотите взглянуть на версию UltiDev веб-сервера Cassini . Они взяли веб-сервер Microsoft Open Source Cassini и усовершенствовали его, чтобы, среди прочего, разрешать удаленные подключения.

Вы можете подключить VS к процессу и наблюдать, как ваши RESTful API вызываются из приложения PHP, точно так же, как вы описали выше.

0 голосов
/ 04 сентября 2013

Этот пост помог мне: http://staticvoidmain.cognitioab.se/index.php/2013/01/remote-debugging-asp-net-development-server-with-spi-port-forward/ Он предлагает использовать стороннее приложение на вашем компьютере разработчика, чтобы действовать как прокси (вроде). Таким образом, вы подключаетесь к этому приложению, и оно перенаправляет все ваши запросы на сервер разработки. Работает как магия:)

0 голосов
/ 10 февраля 2010

ДА ЕСТЬ! : D

Я тоже некоторое время искал, чтобы преодолеть это ограничение, и случайно наткнулся на следующую статью:

http://eeichinger.blogspot.com/2009/12/sniff-http-traffic-with-aspnet.html

Я сам еще не пробовал, но выглядит быстро и просто (хотя некоторые могут сказать, что это хардкор).
КСТАТИ. Я рекомендую вам взглянуть на некоторые другие посты в блоге Эриха Айхингера , так как есть более ценные вещи.

0 голосов
/ 17 марта 2009

Переключение IIS 7 на классический конвейер не решает проблемы совместимости? VS 2005 имеет удаленный отладчик, как и многие версии до этого.

...