相关疑难解决方法(0)

在IIS7上启用跨源资源共享

我最近遇到了将Javascript请求发布到另一个域的问题.默认情况下,不允许将XHR发布到其他域.

按照http://enable-cors.org/的说明,我在其他域上启用了此功能.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="Access-Control-Allow-Origin" value="*" />
      <add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" />
      <add name="Access-Control-Allow-Headers" value="Content-Type" />
    </customHeaders>
  </httpProtocol>
 </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

现在一切正常,但是在发回工作200响应之前仍然会返回405响应.

Request URL:http://testapi.nottherealsite.com/api/Reporting/RunReport
Request Method:OPTIONS
Status Code:405 Method Not Allowed
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6
Access-Control-Request-Headers:origin, content-type, accept
Access-Control-Request-Method:POST
Connection:keep-alive
Host:testapi.nottherealsite.com
Origin:http://test.nottherealsite.com
Referer:http://test.nottherealsite.com/Reporting
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1
Response Headersview source
Access-Control-Allow-Headers:Content-Type
Access-Control-Allow-Methods:GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Origin:*
Allow:POST
Cache-Control:private
Content-Length:1565
Content-Type:text/html; charset=utf-8
Date:Tue, 18 Sep 2012 14:26:06 GMT …
Run Code Online (Sandbox Code Playgroud)

javascript iis-7 xmlhttprequest cors

84
推荐指数
6
解决办法
18万
查看次数

如何让OData DELETE工作?

我已经创建了一个OData服务(WCF数据服务)和一个用户来测试它.

以前,当我尝试删除时,我收到了WebDAV 405错误消息"Method Not Allowed".

所以我用Google搜索并发现:

http://nikhilthaker86.wordpress.com/2010/03/27/issue-hosting-restful-services-on-iis-7/

我按照说明从IIS 7中的网站(服务)中删除了WebDav模块.

现在我收到此错误消息:

"HTTP错误500.21 - 内部服务器错误

处理程序"WebDAV"在其模块列表中有一个错误的模块"WebDAVModule"

模块:IIS Web核心通知:ExecuteRequestHandler"

如果你有一个解决方案会让这个问题消失,我会非常感激...否则,如果你是一个IIS大师,而你在想"这家伙不知道他在做什么",请指点我在一些有用的在线阅读材料的方向.

提前致谢.

c# asp.net iis-7 wcf-data-services odata

15
推荐指数
1
解决办法
7704
查看次数

选项405(不允许的方法)

所以我试图在我的网站上获取文件上传的进度条.如果我只是上传资源

$.ajax({
    url: $rootScope.URL,  //Server script to process data
    type: 'POST',
    beforeSend: beforeSendHandler,
    success: completeHandler,
    error: errorHandler,
    data: formData,
    cache: false,
    contentType: false,
    processData: false
});
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但是如果我添加事件来听取进度:

$.ajax({
    url: $rootScope.URL,  //Server script to process data
    type: 'POST',
    xhr: function() {  // Custom XMLHttpRequest
        var myXhr = $.ajaxSettings.xhr();
        if(myXhr.upload){ // Check if upload property exists
            myXhr.upload.addEventListener('progress',progressHandlingFunction, false); // For handling the progress of the upload
        }
        return myXhr;
    },
    beforeSend: beforeSendHandler,
    success: completeHandler,
    error: errorHandler,
    data: formData,
    cache: false,
    contentType: false, …
Run Code Online (Sandbox Code Playgroud)

javascript php ajax jquery

14
推荐指数
1
解决办法
1万
查看次数

HTTP错误405.0 - IIS Express中不允许的方法

在Visual Studio 2013下向本地IIS Express网站发出完美的动词时:

CROMULENT http://localhost:7579/Handler.ashx HTTP/1.1
Host: localhost:7579
Run Code Online (Sandbox Code Playgroud)

服务器响应错误:

HTTP/1.1 405 Method Not Allowed
Allow: GET, HEAD, OPTIONS, TRACE
Run Code Online (Sandbox Code Playgroud)

这是对"通用处理程序" (即.ashx)的请求.如果我再次尝试静态资源:

SCHWIFTY http://localhost:7579/Default.htm HTTP/1.1
Host: localhost:7579
Run Code Online (Sandbox Code Playgroud)

服务器响应错误:

HTTP/1.1 405 Method Not Allowed
Allow: GET, HEAD, OPTIONS, TRACE
Run Code Online (Sandbox Code Playgroud)

这是尝试使用HTTP谓词的所有方法:

DELETE http://localhost:7579/Handler.ashx HTTP/1.1
Host: localhost:7579

HTTP/1.1 405 Method Not Allowed
Allow: GET, HEAD, OPTIONS, TRACE

PUThttp://localhost:7579/Handler.ashx HTTP/1.1
Host: localhost:7579

HTTP/1.1 405 Method Not Allowed
Allow: GET, HEAD, OPTIONS, TRACE
Run Code Online (Sandbox Code Playgroud)

这个问题有时被我要求死亡.但没有人提出过解决方案.

</问题>

微软的Bug

从根本上说,问题在于Microsoft默认情况下会破坏IIS和IISExpress.他们不需要像处理Web服务器那样处理HTTP谓词,而是处理动词.

在管理在Windows Server上运行的完整IIS时,最容易看到这一点.挑选任何内置的处理程序(例如CSHTML处理程序)的,你可以看到,有人认为这将是 …

iis iis-7 iis-7.5 iis-express visual-studio-2013

13
推荐指数
2
解决办法
2万
查看次数

由于CORS,Azure网站上的HTTP OPTIONS请求失败

我最近将我们的服务器从Rackspace CloudSites(在Apache/Linux上运行)转移到了Windows Azure网站.自迁移以来,我们的REST API上的所有jQuery AJAX请求都因CORS而失败.

我们使用自定义标头,因此jQuery在运行实际API调用之前会发出Pre-flight HTTP OPTIONS请求.问题是OPTIONS请求似乎没有到达我的PHP代码,而是由其他一些我似乎无法控制的实体(显然是Web服务器)返回.

我已经使用以下标题几年了所以我很确定问题不在PHP代码中:

<?php
    $this->output->set_header("Access-Control-Allow-Origin: *");
    $this->output->set_header("Access-Control-Allow-Methods: GET,POST,DELETE,HEAD,PUT,OPTIONS");
    $this->output->set_header("Access-Control-Allow-Headers: X-Olaround-Debug-Mode, Authorization, Accept");
    $this->output->set_header("Access-Control-Expose-Headers: X-Olaround-Debug-Mode, X-Olaround-Request-Start-Timestamp, X-Olaround-Request-End-Timestamp, X-Olaround-Request-Time, X-Olaround-Request-Method, X-Olaround-Request-Result, X-Olaround-Request-Endpoint" );
?>
Run Code Online (Sandbox Code Playgroud)

我猜这个问题是特定于Azure网站的,因为代码似乎在我的开发机器(Windows 8/IIS 8.0)上运行良好.我是Azure的新手(以及一般的基于Windows的托管)所以我几乎不知道如何处理和调试此问题,因为Azure网站允许非常小的控制.

php jquery azure cors azure-web-sites

6
推荐指数
3
解决办法
2万
查看次数

Azure DevOps 发布管道 Web.Config 编辑

我知道,在 Azure DevOps 中创建发布管道时,您可以使用管道中的变量更新应用程序的 web.config,这对于所有 appSettings 值都非常有效。

但是,在发布管道期间,我想更新 web.config 的不同部分,特别是sessionState提供程序节点。我已经尝试了一些用于发布管道的插件,例如 Magic Chunks 的 Config Transform,但问题是它需要您指定要编辑的配置文件的路径,但是当它到达发布管道时,源文件位于zip 存档。不知何故,appSettings 的正常转换能够处理解压版本,但在文件解压后我无法进行其他转换。

我知道您可以在构建管道中进行更改,但我们有理由希望在发布管道中进行更改。

有人知道如何在 Azure 应用服务的发布管道中的 appSettings 分组之外对 web.config 进行更改吗?

web-config web.config-transform azure-devops azure-pipelines azure-pipelines-release-pipeline

5
推荐指数
1
解决办法
1万
查看次数

不允许使用ASP.NET Core 2.2 WebAPI 405方法

设定

  • Windows 10
  • Visual Studio 2017专业版
  • ASP.Net Core 2.2

我想做什么

针对使用PATCH动词的Web API中的控制器方法运行集成测试

MyController.cs

namespace FluidIT.API.Controllers
{
    [Route("api/v1/[controller]")]
    [ApiController]
    public class MyController : ControllerBase
    {
        private readonly IMediator _mediator;
        private readonly IMyQueries _myQueries;

        public JobsController(IMediator mediator, IMyQueries myQueries)
        {
            _mediator = mediator ?? throw new ArgumentNullException(nameof(mediator));
            _myQueries = myQueries ?? throw new ArgumentNullException(nameof(myQueries));
        }

        // PATCH: api/v1/my/{id}
        [Route("id:int")]
        [HttpPatch]
        public async Task<IActionResult> RemoveMeAsync(int id)
        {
            bool commandResult = false;

            try
            {
                commandResult = await _mediator.Send(new RemoveMeCommand(id));
                return NoContent();
            } …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core

4
推荐指数
1
解决办法
6970
查看次数