我现在正在通过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>
型
我是一个菜鸟程序员,所以很抱歉我不能很好地解释这个问题
当此设置部署到本地主机站点(测试)时,屏幕显示没有任何问题。
的
1条答案
按热度按时间bfrts1fy1#
我自己解决了我的问题。谢谢你对我的问题的评论
问题是获取请求地址
字符串
我必须在GET地址前面添加应用程序目录