, 문제가 IIS와 함께 경로를 처리하는 방식입니다. 그들 안에.
난과 같이 등록 된을 IHttpHandler를 작성하여 ASP.NET MVC에서이 문제를 해결 :
다음이 유사하게 처리되었습니다
<system.webServer>
<handlers>
<add name="ApplePayMerchantIdDomainAssociation" path=".well-known/apple-developer-merchantid-domain-association" verb="GET" type="MyNamespace.ApplePayMerchantIdDomainAssociationHandler, MyAssembly" resourceType="Unspecified" preCondition="integratedMode" />
</handlers>
</system.webServer>
:
의 System.Globalization을 사용하여; using System.Web; using System.Web.Mvc;
namespace MyNamespace
{
public class ApplePayMerchantIdDomainAssociation : IHttpHandler
{
public bool IsReusable => true;
public void ProcessRequest(HttpContext context)
{
var wrapper = new HttpContextWrapper(context);
ProcessRequest(wrapper);
}
public void ProcessRequest(HttpContextBase context)
{
var type = GetType();
var assembly = type.Assembly;
string resourceName = string.Format(
CultureInfo.InvariantCulture,
"{0}.apple-developer-merchantid-domain-association",
type.Namespace);
using (var stream = assembly.GetManifestResourceStream(resourceName))
{
if (stream == null)
{
context.Response.StatusCode = 404;
}
else
{
stream.CopyTo(context.Response.OutputStream);
context.Response.ContentType = "text/plain";
context.Response.StatusCode = 200;
}
}
}
}
}
ASP.NET에서 핵심 콘텐츠는 wwwroot에서 바로 정적 콘텐츠로 제공 할 수 있으므로 훨씬 더 귀찮습니다.
안녕하세요, Tom이 문제는 파일이 제공되지 않는다는 것입니다. 마침표를 삭제하고 ". well-known /"대신 "well-known /"URL을 만들면 파일이 서버가됩니다. 따라서 알려진 경로에 마침표를 추가하면 하늘색이 파일을 제공하지 않게됩니다. 저것은 그것의 연장을 놓치지 않았다. –
내 대답이 도와 줘서 기뻐요! 나는 라우팅을 우회하고 그냥 파일 시스템에 파일로 남겨두고있다. 그래서 나는 당신과 다른 일련의 문제에 부딪쳤다 고 생각합니다. 내 자신에 대한 답변을 찾고있는 동안 귀하의 질문에 걸쳐 비틀 거리며 내가 물었던 질문에 대한 대답이 아니라는 것을 게시했습니다.) –
이것은 ASP.NET MVC 사이트에서 작동합니까? –