小编sjd*_*ect的帖子

配置cors以允许使用ASP.NET Core的所有子域(Asp.net 5,MVC6,VNext)

我在ASP.NET Core Web应用程序中正确设置了cors.我使用以下包...

"Microsoft.AspNet.Cors": "6.0.0-rc1-final"
Run Code Online (Sandbox Code Playgroud)

这是startup.cs片段......

public virtual IServiceProvider ConfigureServices(IServiceCollection services)
{
    services.AddCors
    (
        options =>
        {
            options.AddPolicy
            (
                CORSDefaults.PolicyName, 
                builder =>
                {
                    //From config...
                    var allowedDomains = new []{"http://aaa.somewhere.com","https://aaa.somewhere.com","http://bbb.somewhere.com","https://bbb.somewhere.com"};

                    //Load it
                    builder
                        .WithOrigins(allowedDomains)
                        .AllowAnyHeader()
                        .AllowAnyMethod()
                        .AllowCredentials();
                }
            );
        }
    );
}
Run Code Online (Sandbox Code Playgroud)

除了要允许的子域列表快速增长并且我想允许"somewhere.com"的所有子域之外,这很有效.像"*.somewhere.com"之类的东西.我似乎无法在新的ASP.NET Core(MVC6,ASP.NET5,VNext)中找到有关如何执行此操作的任何文档.我发现的所有演示如何执行此操作的文档/示例都适用于早期版本的MVC或WebApi.如何在新堆栈中实现此目的?

cors asp.net-core-mvc asp.net-core

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

Visual Studio 2012伪造的UnitTestIsolation工具无法初始化

刚安装vs 2012更新2(http://www.microsoft.com/en-us/download/details.aspx?id=36833)所以我可以使用vs fakes/shims来测试一些难以测试的代码.当我创建假装配并且所有引用都按预期添加到单元测试项目中时,一切都编译得很好.但是在任何测试中运行以下代码......

using (ShimsContext.Create())
{
    //Doesn't matter whats in here
}
Run Code Online (Sandbox Code Playgroud)

引发以下异常......

Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationException : UnitTestIsolation instrumentation failed to initialize.  Please restart Visual Studio and rerun this test
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪完全异常......

Test 'Abot.Tests.Unit.Core.HapHyperLinkParserTest.HyperLinkParserTest.GetLinks_AreaTags_ReturnsLinks' failed: Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationException : UnitTestIsolation instrumentation failed to initialize. Please restart Visual Studio and rerun this test
at Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationRuntime.InitializeUnitTestIsolationInstrumentationProvider()
at Microsoft.QualityTools.Testing.Fakes.Shims.ShimRuntime.CreateContext()
at Microsoft.QualityTools.Testing.Fakes.ShimsContext.Create()
Core\HyperlinkParserTest.cs(59,0): at Abot.Tests.Unit.Core.HyperLinkParserTest.GetLinks_AreaTags_ReturnsLinks()
Run Code Online (Sandbox Code Playgroud)

几点说明......

  • 我正在使用visual studio 2012 premium
  • 解决方案中的所有项目都以.net 4.0为目标
  • 我正在使用nunit进行测试框架
  • 尝试通过testdriven.net插件和nunit gui运行测试,但同样的错误.
  • 尝试瞄准.net 4.5并得到相同的错误
  • 我没有使用Typemock或Ncrunch而且没有安装它们
  • 我正在使用Moq但是将其删除了
  • 它没有绑定到特定的测试,我已经验证它在不同的测试文件和其他解决方案中都失败了.

c# testing nunit unit-testing visual-studio-2012

8
推荐指数
1
解决办法
6335
查看次数

使用Azure Api管理作为传递

我想在Azure API管理中创建一个策略,该策略将所有以路径“ proxy / search”开头的调用转发到另一个URL。但是,我不想为每种可能性都在APIM中导入/创建端点,因为这使它成为维护的噩梦。例如..

到对应的...

我已经在下面构建了该策略,但APIM似乎希望从其映射到后端的确切路由。我不想执行此操作,因为此代理可能正在转发到许多路由api等...

<policies>
    <inbound>
        <base />
        <set-variable name="baseUrlSearch" value="https://mysearchapi.com/" />
        <set-variable name="matchSearch" value="proxy/search" />
        <set-variable name="isRoutingComplete" value="false" />
        <set-variable name="apiVersionDefaultSearch" value="1.0" />
        <choose>
            <when condition="@{return context.Request.Url.Path.Contains(context.Variables.GetValueOrDefault<string>("matchSearch"));}">
                <set-backend-service base-url="@(context.Variables.GetValueOrDefault<string>("baseUrlSearch"))" />
                <rewrite-uri template="@(context.Request.Url.Path.Replace(context.Variables.GetValueOrDefault<string>("matchSearch"), ""))" />
                <set-header name="Api-Version" exists-action="skip">
                    <value>@(context.Variables.GetValueOrDefault<string>("apiVersionDefaultSearch"))</value>
                </set-header>
                <set-variable name="isRoutingComplete" value="true" />
            </when>
            <when condition="@(!context.Variables.GetValueOrDefault<bool>("isRoutingComplete"))">
                <return-response>
                    <set-status code="400" reason="Bad Request Through Proxy" />
                </return-response>
            </when>
        </choose>
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>
Run Code Online (Sandbox Code Playgroud)

azure azure-api-management

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