1.開始javascript
Nodejs in Visual Studio Code 08.IIS : http://www.cnblogs.com/mengkzhaoyun/p/5410185.htmlcss
參考此篇內容,部署一個iisnode示例html
2.將Node.js Express框架示例程序部署在IISNode中java
1
2
3
4
5
6
7
8
9
10
11
|
$
cd
D:\Libraries\Documents\Visual Studio Code
$ express myapp
create : myapp
create : myapp
/package
.json
......
install
dependencies:
>
cd
myapp && npm
install
run the app:
> SET DEBUG=myapp:* & npm start
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<configuration>
<system.webServer>
<!-- bin/www 是Express示例默認的啓動程序 -->
<handlers>
<add name=
"iisnode"
path=
"bin/www"
verb=
"*"
modules=
"iisnode"
/>
</handlers>
<rewrite>
<rules>
<rule name=
"myapp"
>
<match url=
"/*"
/>
<action type=
"Rewrite"
url=
"bin/www"
/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
|
1
2
3
|
HTTP 錯誤 404.8 - Not Found
請求篩選模塊被配置爲拒絕包含 hiddenSegment 節的 URL 中的路徑。
|
將bin/www代碼剪切過來,並刪除bin/www,修改Web.config中的入口程序爲index.jsnode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<configuration>
<system.webServer>
<!-- index.js 是myapp的啓動程序 -->
<handlers>
<add name=
"iisnode"
path=
"index.js"
verb=
"*"
modules=
"iisnode"
/>
</handlers>
<rewrite>
<rules>
<rule name=
"myapp"
>
<match url=
"/*"
/>
<action type=
"Rewrite"
url=
"index.js"
/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
iisnode encountered an error when processing the request.
HRESULT: 0x2
HTTP status: 500
HTTP subStatus: 1002
HTTP reason: Internal Server Error
You are receiving this HTTP 200 response because system.webServer/iisnode/@devErrorsEnabled configuration setting is 'true'.
In addition to the log of stdout and stderr of the node.exe process, consider using debugging and ETW traces to further diagnose the problem.
The last 64k of the output generated by the node.exe process to stderr is shown below:
Application has thrown an uncaught exception and is terminated:
Error: Cannot find module '../app'
at Function.Module._resolveFilename (module.js:325:15)
at Function.Module._load (module.js:276:25)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<
anonymous
> (D:\Libraries\Documents\Visual Studio Code\myapp\index.js:7:11)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
|
1
2
3
|
var
app = require(
'./app'
);
var
debug = require(
'debug'
)(
'myapp:server'
);
var
http = require(
'http'
);
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
Not Found
404
Error: Not Found
at D:\Libraries\Documents\Visual Studio Code\myapp\app.js:30:13
at Layer.handle [as handle_request] (D:\Libraries\Documents\Visual Studio Code\myapp\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (D:\Libraries\Documents\Visual Studio Code\myapp\node_modules\express\lib\router\index.js:312:13)
at D:\Libraries\Documents\Visual Studio Code\myapp\node_modules\express\lib\router\index.js:280:7
at Function.process_params (D:\Libraries\Documents\Visual Studio Code\myapp\node_modules\express\lib\router\index.js:330:12)
at next (D:\Libraries\Documents\Visual Studio Code\myapp\node_modules\express\lib\router\index.js:271:10)
at D:\Libraries\Documents\Visual Studio Code\myapp\node_modules\express\lib\router\index.js:618:15
at next (D:\Libraries\Documents\Visual Studio Code\myapp\node_modules\express\lib\router\index.js:256:14)
at Function.handle (D:\Libraries\Documents\Visual Studio Code\myapp\node_modules\express\lib\router\index.js:176:3)
at router (D:\Libraries\Documents\Visual Studio Code\myapp\node_modules\express\lib\router\index.js:46:12)
|
1
2
3
4
|
app.use(
'/myapp'
,express.
static
(path.join(__dirname,
'public'
)));
app.use(
'/myapp'
, routes);
app.use(
'/myapp/users'
, users);
|
1
2
3
4
5
6
7
|
doctype html
html
head
title= title
link(rel=
'stylesheet'
, href=
'stylesheets/style.css'
)
body
block content
|
將全部myapp下的執行請求都交給index.js去執行了,顯然myapp/index.js/debug這個地址不該該給index.js去執行。git
修改web.config中的url rewriter節,將index.js/debug這個地址設置成不匹配negate="true"。github
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<
configuration
>
<
system.webServer
>
<!-- index.js 是myapp的啓動程序 -->
<
handlers
>
<
add
name="iisnode" path="index.js" verb="*" modules="iisnode" />
</
handlers
>
<
rewrite
>
<
rules
>
<
rule
name="myapp">
<
match
url="index.js/debug" negate="true" />
<
action
type="Rewrite" url="index.js" />
</
rule
>
</
rules
>
</
rewrite
>
</
system.webServer
>
</
configuration
>
|
3.總結web
iisnode各類叼,支持發佈後跨平臺遠程調試,若是發佈過程當中遇到問題怎麼辦呢,iisnode發佈5年了(目前是0.2.*版本),應該積累了很多issues了,一篇篇翻看,或者去問做者解決吧。express
示例代碼,請前往:https://github.com/Mengkzhaoyun/nodepractise npm
04.iisNode&myApp
http://www.cnblogs.com/mengkzhaoyun/p/5414501.html