小编tug*_*erk的帖子

GZip压缩在IIS 7.5上无法正常工作

我试图支持IIS下的静态文件的GZip压缩(默认情况下应该启用但不能)但到目前为止还没有工作.这是<system.webServer>Web应用程序的web.config文件中节点下的部分;

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
  <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="9" />
  <dynamicTypes>
    <add mimeType="text/*" enabled="true" />
    <add mimeType="message/*" enabled="true" />
    <add mimeType="application/x-javascript" enabled="true" />
    <add mimeType="application/json" enabled="true" />
    <add mimeType="*/*" enabled="false" />
  </dynamicTypes>
  <staticTypes>
    <add mimeType="text/*" enabled="true" />
    <add mimeType="message/*" enabled="true" />
    <add mimeType="application/x-javascript" enabled="true" />
    <add mimeType="application/atom+xml" enabled="true" />
    <add mimeType="application/xaml+xml" enabled="true" />
    <add mimeType="*/*" enabled="false" />
  </staticTypes>
</httpCompression>

<urlCompression doStaticCompression="true" />
Run Code Online (Sandbox Code Playgroud)

我尝试使用谷歌浏览器.这是请求标题;

接受:text/html,application/xhtml + xml,application/xml; q = 0.9,/ ; q = 0.8

接收字符集:ISO-8859-1,utf-8; Q = …

.net asp.net iis gzip iis-7.5

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

捆绑.js文件与CDN

为了提高网页的性能,我们建议使用CDN来提供.js网页上的文件.那讲得通.

此外,我们建议捆绑我们的.js文件,以减少加载时对服务器的请求数.

因此,如果我们使用CDN或捆绑.js文件,我们需要坐下来做出决定.

优缺点都有什么?哪些更有意义?

javascript asp.net resourcebundle cdn asp.net-optimization

47
推荐指数
2
解决办法
8026
查看次数

如何使用mock为不同的参数设置两次方法

我想用Moq设置一个方法两次,但似乎最后一个覆盖了之前的方法.这是我的初始设置:

string username = "foo";
string password = "bar";

var principal = new GenericPrincipal(
    new GenericIdentity(username),
    new[] { "Admin" });

var membershipServiceMock = new Mock<IMembershipService>();
membershipServiceMock.Setup(ms =>
    ms.ValidateUser(username, password)
).Returns(new ValidUserContext { 
    Principal = principal
});
Run Code Online (Sandbox Code Playgroud)

这很好但我希望这返回new ValidUserContext()如果用户名或密码而不是上面的usernamepassword变量.为此,我添加了另一个设置,但这次它会覆盖上面的设置并始终应用它:

membershipServiceMock.Setup(ms =>
    ms.ValidateUser(It.IsAny<string>(), It.IsAny<string>())
).Returns(
    new ValidUserContext()
);
Run Code Online (Sandbox Code Playgroud)

使用Moq处理此类情况的最优雅方式是什么?

编辑

我通过以下方法解决了问题,但我想有更好的方法来处理这个问题:

var membershipServiceMock = new Mock<IMembershipService>();
membershipServiceMock.Setup(ms =>
    ms.ValidateUser(It.IsAny<string>(), It.IsAny<string>())
).Returns<string, string>((u, p) => 
    (u == username && p == password) ?
    new ValidUserContext { 
        Principal …
Run Code Online (Sandbox Code Playgroud)

.net c# unit-testing moq

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

为多语言ASP.NET MVC Web应用程序设置CurrentCulture的最佳位置

对于多语言ASP.NET MVC 3 Web应用程序,我正在确定Thread.CurrentThread.CurrentCultureThread.CurrentThread.CurrentUICulture控制器工厂,如下所示:

public class MyControllerFactory : DefaultControllerFactory {

    protected override IController GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType) {

        //Get the {language} parameter in the RouteData
        string UILanguage;
        if (requestContext.RouteData.Values["language"] == null)
            UILanguage = "tr";
        else
            UILanguage = requestContext.RouteData.Values["language"].ToString();

        //Get the culture info of the language code
        CultureInfo culture = CultureInfo.CreateSpecificCulture(UILanguage);
        Thread.CurrentThread.CurrentCulture = culture;
        Thread.CurrentThread.CurrentUICulture = culture;

        return base.GetControllerInstance(requestContext, controllerType);
    }

}
Run Code Online (Sandbox Code Playgroud)

上面的代码已经快一年了!所以,我愿意接受建议.

我在Global.asax文件上注册这个,如:

ControllerBuilder.Current.SetControllerFactory(new MyControllerFactory());
Run Code Online (Sandbox Code Playgroud)

这样做很好,但我不确定这是否是做这种行为的最佳做法和最佳场所.

我没有挖掘主要角色,ControllerFactory我无法将其与之比较ActionFilterAttribute.

你怎么看待这种行动的最佳地点?

asp.net-mvc action-filter controller-factory asp.net-mvc-3

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

使用JOIN时WHERE Clause vs ON

假设我有以下T-SQL代码:

SELECT * FROM Foo f
INNER JOIN Bar b ON b.BarId = f.BarId;
WHERE b.IsApproved = 1;
Run Code Online (Sandbox Code Playgroud)

以下一行也返回相同的行集:

SELECT * FROM Foo f
INNER JOIN Bar b ON (b.IsApproved = 1) AND (b.BarId = f.BarId);
Run Code Online (Sandbox Code Playgroud)

这可能不是这里最好的案例样本,但这两者之间是否有任何性能差异?

sql t-sql sql-server inner-join sql-server-2008-r2

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

ASP.NET MVC Route的无限URL参数

我需要一个实现,我可以在我的ASP.NET控制器上获得无限的参数.如果我举个例子,那会更好:

我们假设我将有以下网址:

example.com/tag/poo/bar/poobar
example.com/tag/poo/bar/poobar/poo2/poo4
example.com/tag/poo/bar/poobar/poo89
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它将获得无限数量的标记,example.com/tag/并且斜杠将成为此处的分隔符.

在控制器上我想这样做:

foreach(string item in paramaters) { 

    //this is one of the url paramaters
    string poo = item;

}
Run Code Online (Sandbox Code Playgroud)

有没有任何已知的方法来实现这一目标?如何从控制器获取值?用Dictionary<string, string>List<string>

注意 :

IMO没有很好地解释这个问题,但我尽力适应它.in.随意调整它

asp.net asp.net-mvc asp.net-mvc-routing asp.net-mvc-3

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

用于非类型化npm模块的TypeScript自定义声明文件

我正在使用一个名为shiitake的React组件从npm进入我使用TypeScript的项目.该库没有TypeScript声明,所以我想我会写一个.声明文件如下所示(可能不完整,但不要太担心):

import * as React from 'react';

declare module 'shiitake' {

    export interface ShiitakeProps {
        lines: number;
    }

    export default class Shiitake extends React.Component<ShiitakeProps, any> { 
    }
}
Run Code Online (Sandbox Code Playgroud)

我把这个内部./typings/shiitake.d.ts文件和VS代码,我看到以下错误:

[ts]增强中的模块名称无效.模块'shiitake'解析为'd:/dev/foo/foobar.foo.Client.Web/node_modules/shiitake/dist/index.js'中的无类型模块,该模块无法扩充.

在消费方面,即使使用上述声明(因为我noImplicitAny打开了编译器开关),我仍然会得到相同的错误:

/// <reference path="../../../../typings/shiitake.d.ts" />
import * as React from 'react';
import Shiitake from 'shiitake';
Run Code Online (Sandbox Code Playgroud)

[ts]找不到模块'shiitake'的声明文件.'d:/dev/foo/foobar.foo.Client.Web/node_modules/shiitake/dist/index.js'含有'any'类型.

获取此类模块的声明文件的标准原因是通过@types/方式,并且运行良好.但是,我不能让自定义打字工作.有什么想法吗?

typescript ecmascript-6 reactjs visual-studio-code typescript2.0

38
推荐指数
2
解决办法
9675
查看次数

Razor ViewEngine HTML.Checkbox方法创建隐藏输入.为什么?

我在我的视图页面上写了以下代码;

@Html.CheckBox("ChxName",true)
Run Code Online (Sandbox Code Playgroud)

我得到了以下结果;

<input checked="checked" id="ChxName" name="ChxName" type="checkbox" value="true" />
<input name="ChxName" type="hidden" value="false" />
Run Code Online (Sandbox Code Playgroud)

为什么有一个与复选框命名相同的输入元素?

checkbox asp.net-mvc razor asp.net-mvc-3

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

ASP.NET Web API与ninject的绑定

我刚刚安装了mvc4 rc更新,我正在尝试构建一个运气不好的api应用程序.

我正在使用ninject但是无法加载我的控制器.我一直在收到错误

类型'Api.Controllers.ConsumerController'没有默认构造函数

我对mvc和使用注射剂都很新,所以请耐心等待.

我没有对通过nuget创建的默认绑定做任何特殊操作

 public static class NinjectWebCommon 
{
    private static readonly Bootstrapper bootstrapper = new Bootstrapper();

    /// <summary>
    /// Starts the application
    /// </summary>
    public static void Start() 
    {
        DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
        DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
        bootstrapper.Initialize(CreateKernel);
    }

    /// <summary>
    /// Stops the application.
    /// </summary>
    public static void Stop()
    {
        bootstrapper.ShutDown();
    }

    /// <summary>
    /// Creates the kernel that will manage your application.
    /// </summary>
    /// <returns>The created kernel.</returns>
    private static IKernel CreateKernel()
    {
        var kernel = new StandardKernel();
        kernel.Bind<Func<IKernel>>().ToMethod(ctx => …
Run Code Online (Sandbox Code Playgroud)

c# wcf-web-api asp.net-mvc-4 asp.net-web-api

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

从ASP.NET Web API中删除XML中的命名空间

如何使用Web API从下面的xml响应中删除命名空间?

<ApiDivisionsResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/GrassrootsHoops.Models.Api.Response">
<Divisions xmlns:d2p1="http://schemas.datacontract.org/2004/07/GrassrootsHoops.Data.Entities">
<d2p1:Page>1</d2p1:Page>
<d2p1:PageSize>10</d2p1:PageSize>
<d2p1:Results xmlns:d3p1="http://schemas.datacontract.org/2004/07/GrassrootsHoops.Models.Api.Response.Divisions"/>
<d2p1:Total>0</d2p1:Total>
</Divisions>
</ApiDivisionsResponse>
Run Code Online (Sandbox Code Playgroud)

xml asp.net-web-api

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