【发布时间】:2017-04-18 05:07:43
【问题描述】:
我在 IIS 上部署了一个 MVC Web 应用程序。当我点击运行(F5)时,它在 VisualStudio 中运行良好。网址看起来像
首页:
localhost:8080/
输入数据并单击登录按钮时显示的第二页[只是一个简单的表单] -> localhost:8080/Data/Query/?fname=Markus&lname=Jennings
那是视觉工作室。视图完美呈现并且事情按预期工作的地方。
现在,当我通过手动输入“localhost”从浏览器访问 web 应用程序时,场景是这样的:
主页:
localhost/website
第二页:
localhost/website/Data/Query/?fname=Markus&lname=Jennings
如您所见,网站字/目录始终存在。我的应用程序在里面发布 C:\inetpub\wwwroot\website 所以,我有点明白为什么会有网站这个词了。 Data 是我的控制器,Query 是我的操作方法。
现在是棘手的部分:
当我尝试使用同一台机器但使用不同的 url(即我的 IP 号码)访问我的网站时,会发生以下情况
a.b.c.d/patinput
主页已呈现。
输入数据并点击登录后,显示的 URL 为:
a.b.c.d/Data/Query/?fname=Markus&lname=Jennings
您可能已经猜到了 URL 中不存在“网站”目录。在我看来它应该看起来像
a.b.c.d/website/Data/Query/?fname=Markus&lname=Jennings
如果我手动添加网站路径/单词,第二个页面会根据需要呈现。
第一页是一个简单的登录表单,我将名字和姓氏作为输入并调用 javascript 函数。从 Javascript 函数中,我使用从 HTML 页面检索到的参数调用我的控制器(数据)。
在我正在使用的 javascript 函数中
window.location.href = '/Data/Query/?fname=' + fname + '&lname=' + lname;
我已经尝试添加一个“。”之前 /Data/Query ..... 也不起作用。
谢谢!
【问题讨论】:
-
我认为这与代码无关。您应该正确配置 IIS,因此不需要在路径中添加“网站”。
-
我可以看到从外部访问时没有设置虚拟目录。我尝试通过 VS2013(在 localhost 而不是 IIS Express 上)启动 Web 应用程序,它运行良好。但是,当我尝试从我的机器或其他机器上的 chrome 访问该网站时,它会失败。重定向只是不起作用!
标签: javascript asp.net-mvc iis ip localhost