【问题标题】:IIS not working with multiple Asp Net MVC apps - Error 404 - React JSIIS 无法与多个 Asp Net MVC 应用程序一起使用 - 错误 404 - React JS
【发布时间】:2018-07-15 08:56:12
【问题描述】:

当我将应用程序放入 IIS 中的网站时,我无法访问它。

如果我将其发布为网站,则该应用程序可以工作。正如您在下面的屏幕截图中看到的那样,该应用程序是一个网站。我只需在浏览器中输入服务器 IP 地址即可访问它。

但是,我需要我的服务器来托管多个应用程序。我正在测试的这台服务器是托管多个 asp 网络应用程序的另一台服务器的副本。不同之处在于此其他服务器托管的应用程序不是基于 MVC。因此,我让它适用于我拥有的旧应用程序。

我有一个使用 ASP Net MVC 开发的新项目。我的猜测是路由存在问题,尽管我已经尝试了所有这些建议:

需要的是这样的:

http://ServerIPAddress/Application1

http://ServerIPAddress/Application2

下面的场景是我的目标:

最后,这是我得到的错误。奇怪的是网站开始加载一些东西。

更新: 我忘了提到我在我的应用程序中使用了 React JS。我发现问题与路由器有关。

【问题讨论】:

  • Windows 事件查看器中是否出现任何错误?我认为这应该给你一个适当的详细信息。此外,验证应用程序池的目标是正确的 .NET CLR 版本。有很多可能性,所以您的第一个选择应该是获取确切的错误消息。
  • 您可以托管多个网站,方法是让它们监听不同的端口号。您可以通过在单个网站的虚拟目录中创建多个应用程序来托管它们。确保您正确使用路由并在应用程序中的任何地方都使用相对 URL(而不是绝对 URL 或相对于站点根目录(而不是目录根目录)的 URL)
  • 检查 ASP.NET 应用程序与 Web 服务器问题是否存在问题的最简单方法是从 IIS 指向的文件夹中删除 ASP.NET 应用程序,并将其替换为 单个 HTML 文件。然后尝试用浏览器打开文件。如果文件未打开,则 IIS 配置存在问题。如果是这样,则 ASP.NET 应用程序有问题。在后一种情况下,首先要检查的是端口是否对数据库服务器及其使用的任何其他网络服务开放。然后检查依赖项和配置。分而治之。

标签: asp.net asp.net-mvc asp.net-mvc-4 iis


【解决方案1】:

您在托管时选择哪个文件夹? 尝试选择包含 .sln 文件和包文件夹的项目文件夹。

【讨论】:

    【解决方案2】:

    嗯,我这里用的是react Js,研究了一下发现这个问题应该和Router有关。

    为了解决这个问题,我是这样做的:

    1 - 在 app.jsx(react 将此文件用作路由器)文件中我更改了:

    <Router history={browserHistory}>
    

    <Router history={useBasename(() => browserHistory)({ basename: Package.baseName})}>
    

    2 - 我引用了我的 package.json 文件:

    import Package from '../package.json'
    

    3 - 打开我的 package.json 文件并添加属性 baseName:

    "baseName":"/nameOfTheFolderInIIS"
    

    这样做之后,我能够连接到我的应用程序。 https://localhost:80/nameOfTheFolderInIIS/login

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-17
      • 1970-01-01
      • 1970-01-01
      • 2021-09-03
      • 2012-02-05
      • 2023-04-08
      相关资源
      最近更新 更多