IIS返回404错误由我的node.js服务器

fcg9iug3  于 12个月前  发布在  Node.js
关注(0)|答案(1)|浏览(159)

我现在正在通过Node JS和IIS开发一个网站。在内部IP中,我试图确保可以从外部IP访问运行没有问题的网站。我已经有一个IP,所以我想通过在该网站内添加应用程序来访问它。然而,在localhost上,404错误发生在一个连接的文件被添加到一个外部站点上的应用程序时。如果你能告诉我如何解决这个问题,我将不胜感激
我修改了index.js文件,以确保它的工作。但即使是这个文件有404错误。
index.js:

const express = require('express');
const { user } = require('./dbconfig');
const app = express() ;
const PORT = process.env.PORT || 80;
const pool = require('./sql');
const path = require('path');

app.set('view engine','ejs');
app.engine('html',require('ejs').renderFile);
app.set('views',path.join(__dirname,'/views'));
app.use(express.urlencoded({ extended: true}));
app.use(express.static(path.join(__dirname,'uploads')))
app.use(express.static(path.join(__dirname,'/views')))

app.get('/',async(req,res) =>{
res.send('just do it');
});

app.listen(PORT, () => {
    console.log(`Server on = http://localhost:${PORT}/`);
});

字符串
web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers accessPolicy="Read, Script">
            <add name="iisnode" path="index.js" verb="*" modules="iisnode" requireAccess="Script" />
        </handlers>
        <iisnode watchedFiles=".js;node_modules\*;routes\*.js;views\*.jade" nodeProcessCommandLine="C:\program Files\nodejs\node.exe" />
        <rewrite>
            <rules>
                <rule name="SendToNode" enabled="true">
                    <match url="/*" />
                    <action type="Rewrite" url="index.js" />
                </rule>
            </rules>
        </rewrite>
        <httpRedirect enabled="false" destination="" />
        <staticContent>
            <mimeMap fileExtension=".ejs" mimeType="text/html" />
        </staticContent>
    </system.webServer>
</configuration>


这是我的IIS列表。TS_AS应用程序返回404错误


的数据
我添加我的applicationHost.config标记

<sites>
            <site name="Default Web Site" id="1" serverAutoStart="true">
                <application path="/">
                    <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
                </application>
                <application path="/--------" applicationPool="DefaultAppPool">
                    <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\--------" />
                </application>
                <application path="/TS_AS" applicationPool="DefaultAppPool">
                    <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\TS_AS" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:80:" />
                </bindings>
            </site>
            <site name="test" id="3" serverAutoStart="true">
                <application path="/">
                    <virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot\TS_AS" />
                </application>
                <bindings>
                    <binding protocol="http" bindingInformation="*:8080:" />
                </bindings>
            </site>
        </sites>


我是一个菜鸟程序员,所以很抱歉我不能很好地解释这个问题
当此设置部署到本地主机站点(测试)时,屏幕显示没有任何问题。


bfrts1fy

bfrts1fy1#

我自己解决了我的问题。谢谢你对我的问题的评论
问题是获取请求地址

app.get('/TS_AS/',async(req,res) =>{
res.send('just do it');
});

字符串
我必须在GET地址前面添加应用程序目录

相关问题