Подтвердить что ты не робот

Есть ли способ сделать удаленные вызовы на веб-сервере разработки ASP.NET?

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

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

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

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

Обновление

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

4b9b3361

Ответ 1

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

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

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

Ответ 3

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

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

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

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

Обязательно измените sender.handle_close, как отметил Dwight Walker в комментариях:

def handle_close(self):
    self.close()
    if len(self.receiver.to_remote_buffer) == 0:
        self.receiver.close()

Ответ 4

Вы можете удаленно отлаживать компьютер с помощью 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 год, просто для некоторых дополнительных комментариев, которые он имеет.

Ответ 5

В основном я потратил 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

Ответ 6

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

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

Ответ 7

Просто используйте простой туннель 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, внешнему по отношению к VM)

Ответ 8

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

Ответ 9

ДА ЕСТЬ!: D

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

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

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

Ответ 10

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