首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iisnode对post方法发出“错误请求”

iisnode对post方法发出“错误请求”
EN

Stack Overflow用户
提问于 2017-04-06 15:35:11
回答 1查看 717关注 0票数 1

我已经开发了nodejs express应用。它在节点服务器上运行时工作正常。但在iis服务器上托管后,它总是给出'Bad Request‘作为响应。Get调用运行良好。

以下是我的web.conf文件

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>         
      <handlers>
           <add name="iisnode" path="server.js" verb="*" modules="iisnode"/>
     </handlers>
      <rewrite>
           <rules>

                <rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true">                    
                    <match url="^server.js\/debug[\/]?" />
                </rule>

                <rule name="StaticContent">
                     <action type="Rewrite" url="public{REQUEST_URI}"/>
                </rule>

                <rule name="DynamicContent">
                     <conditions>
                          <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
                     </conditions>
                     <action type="Rewrite" url="server.js"/>
                </rule>

           </rules>
      </rewrite>

      <iisnode     
      nodeProcessCommandLine="C:\Program Files\nodejs\node.exe"
      nodeProcessCountPerApplication="1"
      maxConcurrentRequestsPerProcess="1024"
      maxNamedPipeConnectionRetry="100"
      namedPipeConnectionRetryDelay="250"      
      maxNamedPipeConnectionPoolSize="512"
      maxNamedPipePooledConnectionAge="30000"
      asyncCompletionThreadCount="0"
      initialRequestBufferSize="4096"
      maxRequestBufferSize="65536"
      watchedFiles="*.js;iisnode.yml"
      uncFileChangesPollingInterval="5000"      
      gracefulShutdownTimeout="60000"
      loggingEnabled="false"
      logDirectory="iisnode"
      debuggingEnabled="true"
      debugHeaderEnabled="false"
      debuggerPortRange="5058-6058"
      debuggerPathSegment="debug"
      maxLogFileSizeInKB="128"
      maxTotalLogFileSizeInKB="1024"
      maxLogFiles="20"
      devErrorsEnabled="true"
      flushResponse="false"      
      enableXFF="false"
      promoteServerVars=""
      configOverrides="iisnode.yml"

     />
     <modules>
       <remove name="WebDAVModule"/>
    </modules>
   </system.webServer>
 </configuration>

server.js文件如下所示

代码语言:javascript
复制
'use strict';

// Module dependencies.
var express = require('express'),
    path = require('path'),
    fs = require('fs'),
    methodOverride = require('method-override'),
    morgan = require('morgan'),
    bodyParser = require('body-parser');

var app = module.exports = exports.app = express();

app.locals.siteName = "IOS IBE";

app.use(express.static(__dirname + '/public'));

app.get('/*', function (req, res) {
    res.sendFile(__dirname + '/public/index.html');
});

app.use(methodOverride());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));


// Start server
var port = process.env.PORT;
app.listen(port, function () {
    console.log('DP Admin server listening on port %d in %s mode', port, app.get('env'));
});
EN

回答 1

Stack Overflow用户

发布于 2017-10-30 11:50:54

我可以通过添加以下内容来修复此问题

代码语言:javascript
复制
<system.webServer>
   <httpErrors existingResponse="PassThrough" /> 
</system.webServer>

敬web.config。

希望这对其他任何人都有帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43248621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档