Почему мой виртуальный каталог IIS работать с http://localhost но не http://computername?
мне была предоставлена задача добавления функциональности на существующий веб-сайт IIS 6.0. Чтобы сделать это, я построил ASP.NET приложение MVC. Он отлично работает при развертывании как собственный сайт, но не работает, когда я пытаюсь развернуть его как виртуальный каталог на фактическом сайте, где он должен жить.
имя сервера-CWEBSERVER, а IP-192.168.1.11. Глядя на Диспетчер IIS, это структура сайта:
(Default Website) (root)
- PRODUCTION (vDir)
- CONTENT (not a vDir)
- DATAFOLDER (vDir, contains MVC app, just added by me, not working)
странно то, что когда я введите следующий URL-адрес из браузера на сервере это работает:
http://localhost/DATAFOLDER/account.aspx
http://127.0.0.1/DATAFOLDER/account.aspx
http://192.168.1.11/DATAFOLDER/account.aspx
следующий URL (который мне нужен для работы) не делает:
http://CWEBSERVER/DATAFOLDER/account.aspx
ошибка, которую я получаю: "ресурс не может быть найден."
присмотревшись, я понял, что просит http://CWEBSERVER идем в виртуальный_каталог производства, но звонки http://localhost или http://192.168.1.11 идем к корню сайта. Я думаю, это что-то настроенное оригинальным дизайнером сайта. Я не уверен, как изменить эту настройку, но я не думаю, что смогу ее изменить, потому что на самом деле есть тонна других каталогов, которые будут затронуты. Другая вещь, которую я хотел указать, заключается в следующем: папка содержимого доступна, перейдя в http://CWEBSERVER/CONTENT. Это действительно странно, так как я думал, что http://CWEBSERVER указал мне на корень, чтобы я не подумайте, что" /CONTENT " действительно сможет попасть в папку содержимого.
теперь моя проблема заключается в следующем: как получить доступ к моему DATAFOLDER через http://CWEBSERVER/DATAFOLDER? Я бы подумал, что я должен просто поставить DATAFOLDER vdir внутри производства vDir. Я попробовал, и с помощью localhost или IP это все еще доступно через:
http://localhost/PRODUCTION/DATAFOLDER/account.aspx
http://127.0.0.1/PRODUCTION/DATAFOLDER/account.aspx
http://192.168.1.11/PRODUCTION/DATAFOLDER/account.aspx
когда я использую CWEBSERVER, однако, он все равно терпит неудачу:
http://CWEBSERVER/DATAFOLDER/account.aspx
в ошибка "не удается найти ресурс.". Кто-нибудь может пролить свет на это? В частности, у меня есть следующие вопросы:
- как http://localhost перейти к корню, и http://CWEBSERVER перейти к производству vDir? Где можно изменить эту настройку?
- почему "http://localhost/PRODUCTION/DATAFOLDER/account.аспн" работы, но не "http://CWEBSERVER/DATAFOLDER/account.аспн"?
принятый ответ на этот вопрос (кому будет присуждена награда) должен быть в состоянии сделать это, чтобы я мог получить доступ http://CWEBSERVER/DATAFOLDER/account.аспн. Спасибо!
6 ответов
скорее всего, у вас есть IIS, привязанный только к IP-адресу. Перейдите в диспетчер IIS, затем перейдите в свойства на веб-сайте. Затем на вкладке веб-сайт перейдите в раздел Свойства.
добавьте идентификатор для этого значения заголовка хоста.
при необходимости можно добавить несколько Привязок.
обновление
думаю, теперь я знаю, чего ты хочешь. В Диспетчере IIS разверните веб-сайт по умолчанию. Затем щелкните правой кнопкой мыши на рабочем виртуальном каталоге и выберите "Создать Виртуальный Каталог". Вызовите этот Новый один DATAFOLDER. Затем свяжите это с существующим местоположением в файловой системе.
Я действительно думаю,что вам нужно немного прибраться. Первое, что я бы сделал, это решить, как все действительно должно быть доступно. Другими словами, когда они печатают http://www.mysite.org/ что это должно быть? Если это производственный каталог, создайте новый сайт и укажите его в производственный каталог, затем создайте виртуальное приложение DATAFOLDER под ним.
хотя я не прошел через весь список ответов, я столкнулся с этим решением следующим образом. Мои ссылки на веб-страницу работают с localhost
но не с IP или имя компьютера. Он не имеет никаких ошибок, особенно с большим IE (****).
чтобы исправить это, я добавил сайт в надежные сайты IE.
может быть, это помогает уменьшить некоторые разочарования!
У меня была аналогичная проблема, которая была решена путем назначения статического IP-адреса моему временному серверу IIS. (Я назначил тот же IP-адрес, что и динамически выделенный, который был 192.168.56.101.)
может это поможет кому-то.
также проверить этой настройки брандмауэра.
сделайте, как сказал Крис Лайвли, и добавьте больше Привязок для других имен хостов или добавьте новый сайт с настройками к тому же контенту. IIS отвечает, просматривая информацию заголовка узла, и если у вас есть только веб-сайт по умолчанию с одной привязкой к порту 80, он не будет обрабатывать все возможные заголовки.
Если имя является внутренним для вашей компании, как имя машины или внутренняя запись DNS, Вы можете уйти, позволив привязке по умолчанию выполнить эту работу. Если это не работает в тестировании добавьте привязку для этой ситуации (CWEBSERVER или mysite.org). Протестируйте его с www и без него, если вы заботитесь о том, чтобы он работал в обоих направлениях.
нет большого недостатка в добавлении нескольких "сайтов" в IIS для одного и того же контента. Например, вы могли бы
mysite.org указывает на /PRODUCTION/DATAFOLDER / index.HTML-код
и
marketingsite.com указывает на /PRODUCTION/DATAFOLDER / index.HTML-код
тогда вы можете делать такие вещи, как иметь разные SSL настройки и так далее. На моем веб-сервере ничто не попадает на веб-сайт по умолчанию, если что-то не пойдет не так (например, я установил новый внешний IP-адрес и еще не изменил привязки).
выберите свой яд, но по существу вам просто нужно добавить настройки в IIS, пока он не обработает все возможные адреса так, как вы хотите.
для меня это была проблема брандмауэра:
перейти к: Панель управления - > Брандмауэр Windows - > разрешить программу или функцию через Брандмауэр Windows
прокрутите список вниз и установите флажок для служб www (http).
- сохранить
теперь я могу получить доступ к http://computername.домен имя