我有一個非常簡單的nodejs https服務器,我試圖與iisnode
一起工作,但它似乎並沒有顯示節點進程正在啓動,所以當我嘗試訪問時出現500錯誤導航到它。iisnode未啓動節點進程
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
const fs = require('fs');
const cors = require('cors');
var https = require('https');
app.use(bodyParser.json());
app.use(cors());
app.get('/', function (req, res) {
res.send('Hello World!')
});
var secureServer = https.createServer({
key: fs.readFileSync('private.key'),
cert: fs.readFileSync('certificate.pem')
}, app).listen(process.env.PORT || 3443, function() {
console.log('Secure Server listening on port 3443');
});
啓動該應用程序的罰款,如果我做的節點server.js,但是當我試圖依賴於由setupsamples.bat
腳本設置節點的虛擬目錄,它似乎並沒有工作。我的web.config看起來也像這樣:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="iisnode" path="server.js" verb="*" modules="iisnode" />
</handlers>
<modules>
<remove name="MyAuthModule" />
</modules>
<security>
<authorization>
<add accessType="Allow" users="?" />
</authorization>
</security>
<rewrite>
<rules>
<rule name="mcServer">
<match url="mcServer/*" />
<action type="Rewrite" url="server.js" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
MyAuthModule
是設置爲我在我的環境自定義的驗證模塊,因此,如果我沒有這樣的刪除語句,我得到有關模塊的錯誤不存在。
我放在server.js
,在Web.config上面顯示和證書文件到iisnode/www
目錄自身的mcServer
目錄是通過運行setupsample.bat腳本創建。當我導航到https://myUrl/node/mcServer
時,出現500錯誤,但如果我導航到https://myUrl/node
,它會顯示可用的不同應用程序,就像我說的,節點進程沒有運行,所以我認爲這是500錯誤的一部分我明白了。
這也很好的說明,我安裝了url重寫模塊,所以不應該是這個問題,而且我再次假設這是因爲節點還沒有啓動。
我必須做一些完全愚蠢的事情,但我無法弄清楚。