无法在Microsoft azure节点上传文件

时间:2017-10-05 04:45:20

标签: node.js azure azure-web-sites

我正在尝试从客户端上传文件,该文件响应Azure网络应用程序上托管的节点服务器

azure上的应用程序日志显示此错误"此错误表示发送到Web服务器的请求包含配置的模块处理程序不允许的HTTP谓词"

的web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <system.webServer>
      <webSocket enabled="false" />
      <handlers>
         <!-- indicates that the app.js file is a node.js application to be handled by the iisnode module -->
         <add name="iisnode" path="server.js" verb="*" modules="iisnode" />
      </handlers>
      <rewrite>
         <rules>
            <!-- Don't interfere with requests for logs -->
            <rule name="LogFile" patternSyntax="ECMAScript" stopProcessing="true">
               <match url="^[a-zA-Z0-9_\-]+\.js\.logs\/\d+\.txt$" />
            </rule>
            <!-- Don't interfere with requests for node-inspector debugging -->
            <rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true">
               <match url="^server.js\/debug[\/]?" />
            </rule>
            <!-- First we consider whether the incoming URL matches a physical file in the /public folder -->
            <rule name="StaticContent">
               <action type="Rewrite" url="public{REQUEST_URI}" />
            </rule>
            <!-- All other URLs are mapped to the Node.js application entry point -->
            <rule name="DynamicContent">
               <conditions>
                  <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True" />
               </conditions>
               <action type="Rewrite" url="server.js" />
            </rule>
         </rules>
      </rewrite>
      <!-- You can control how Node is hosted within IIS using the following options -->
      <!--<iisnode
          node_env="%node_env%"
          nodeProcessCommandLine="&amp;quot;%programfiles%\nodejs\node.exe&amp;quot;"
          nodeProcessCountPerApplication="1"
          maxConcurrentRequestsPerProcess="1024"
          maxNamedPipeConnectionRetry="3"
          namedPipeConnectionRetryDelay="2000"
          maxNamedPipeConnectionPoolSize="512"
          maxNamedPipePooledConnectionAge="30000"
          asyncCompletionThreadCount="0"
          initialRequestBufferSize="4096"
          maxRequestBufferSize="65536"
          watchedFiles="*.js"
          uncFileChangesPollingInterval="5000"
          gracefulShutdownTimeout="60000"
          loggingEnabled="true"
          logDirectoryNameSuffix="logs"
          debuggingEnabled="true"
          debuggerPortRange="5058-6058"
          debuggerPathSegment="debug"
          maxLogFileSizeInKB="128"
          appendToExistingLog="false"
          logFileFlushInterval="5000"
          devErrorsEnabled="true"
          flushResponse="false"
          enableXFF="false"
          promoteServerVars=""
         />-->
   </system.webServer>
</configuration>

更新:代码

var express =   require("express");
var multer    =    require('multer');
var router = express.Router();
var logwrite = require('./logwrite');
var storage =   multer.diskStorage({
  destination: function (req, file, callback) {
    callback(null, __dirname);
  },
  filename: function (req, file, callback) {
    callback(null, 'aasasa-' + Date.now());
  }
});

var upload = multer({ storage : storage}).single('userPhoto');

router.post("/upload", function(req,res){
  // res.send(" we got it !!")
  upload(req,res,function(err) {
        if(err) {
            return res.end("Error uploading file.");
        }
    else{
      res.end("File is uploaded" + __dirname);
    }

    });
});
module.exports = router;

0 个答案:

没有答案