小编Yng*_*sen的帖子

Ninject MVC3 - 引导程序抛出"已经初始化"的异常

我创建了一个空的Asp.Net MVC3项目,并使用了nuget install-package Ninject.MVC3

没有做任何其他事情(没有注册服务,甚至没有创建控制器)我运行应用程序.

项目在NinjectMVC3.cs的第22行中断,但有以下异常:

[InvalidOperationException:已经初始化!] Ninject.Web.Mvc.Bootstrapper.Initialize(Func`1 createKernelCallback)在c:\ Projects\Ninject\Maintenance2.2 \ninject.web.mvc\mvc3\src\Ninject.Web.Mvc\Bootstrapper.cs>:58 Mvc.App_Start.NinjectMVC3.Start()在c:\ Projects\Events\Events\App_Start\NinjectMVC3.cs:22

[TargetInvocationException:调用目标抛出了异常.]
System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo方法,Object target,Object []参数,SignatureStruct&sig,MethodAttributes methodAttributes,RuntimeType typeOwner)+0
System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo)方法,Object target,Object [] arguments,Signature sig,MethodAttributes methodAttributes,RuntimeType typeOwner)+72
System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,Binder binder,Object [] parameters,CultureInfo culture,Boolean skipVisibilityChecks)+ 335
System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,Binder binder,Object [] parameters,CultureInfo culture)+28
System.Reflection.MethodBase.Invoke(Object obj,Object [] parameters)+19
WebActivator.BaseActivationMethodAttribute. InvokeMethod()+199 WebActivator.ActivationManager.RunActivationMethods()+330 WebActivator.ActivationManager.R unPreStartMethods()+27 WebActivator.ActivationManager.Run()+39

NinjectMVC3.cs中的行是:

public static void Start() 
        {
            DynamicModuleUtility.RegisterModule(typeof(OnePerRequestModule));
            DynamicModuleUtility.RegisterModule(typeof(HttpApplicationInitializationModule));
            bootstrapper.Initialize(CreateKernel); // <- this one right here...
        }
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?我已经在其他项目中使用Ninject for MVC3而没有任何问题.我注意到Start()方法中的第二行没有包含在Ninject.MVC3的旧(周)包中,所以也许在最近的更新中还有其他东西被打破了?

请帮忙!

编辑以解决雷莫的回答

这是来自我的global.asax.cs

 public class MvcApplication : System.Web.HttpApplication
 { …
Run Code Online (Sandbox Code Playgroud)

.net c# ninject asp.net-mvc-3

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

对Async WCF的每次其他调用都很慢

我正在使用Rick Strahl撰写本文的代码示例:http://www.west-wind.com/weblog/posts/324917.aspx来对WCF服务进行异步调用,这非常有用.

我的问题是这样的: 第一次调用WCF服务需要20ms左右,而下一次需要大约1秒20ms(完全相同并接收完全相同的数据).如果我重复这个过程,结果总是一样的.每隔一个电话比第一个电话要长一秒钟.

我已经尝试在我的服务上设置InstanceContextMode:

  [ServiceBehavior(IncludeExceptionDetailInFaults = true, InstanceContextMode = InstanceContextMode.PerSession)]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public abstract class AjaxPostBack : IAjaxPostBack
Run Code Online (Sandbox Code Playgroud)

我还在服务中调用的方法中设置了计时器,结果每次都是相同的(当然有些ms差异,但没什么重要的)

"JSON_Took":"00:00:00.0012939","Set_took":"00:00:00.0000274"
Run Code Online (Sandbox Code Playgroud)

(这些值--JSON_Took和Set_took - 是代码隐藏方法中的计时器.所以不是来自客户端 - 服务器 - 客户端的总时间.这只是为了说明实际代码耗费时间不是问题)

有任何想法吗?

如果您需要更多信息,请与我们联系.

---- 有趣的更新 ----

我下载了IE9 RC和Firefox(我一直在Chrome中测试)我的结果来自不同的浏览器:

Firefox:所有呼叫在大约1秒20ms到1s 30ms内保持一致

Chrome:其他所有通话都以Firefox的速度发出,其余的则以1秒的速度快速启动

IE9:几乎没有任何时间所有呼叫都是一致的(~20ms)

Opera:与IE9差不多(约30ms)

这是一个webkit问题吗?(我使用$ .ajax来调用WCF)

c# wcf jquery asynchronous

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

动态调整图像大小,或在磁盘上存储不同的大小?

我正在构建一个最终将包含大量图像的Web应用程序.这些图像需要在整个站点以不同的格式显示.这两种解决方案的优缺点是什么:

  1. 在上传图片时存储各种版本的图片(例如Thumb,small,medium,large,verylarge)
  2. 通过URL调整图像大小 - 例如/ Content/Image/1?height = 300

你怎么看?

编辑: 我很难接受另一个答案,所以对于读这个q/a的人来说,花点时间阅读这两个答案,因为接受的答案是通过硬币的选择来选择的:)他们都是平等的好.

performance image image-resizing web

6
推荐指数
1
解决办法
1203
查看次数

是否可以公开摘要信息或类似信息来获取消耗的WCF服务上的Intellisense?

我有一个WCF服务,其中的方法很多如下.现在,我知道<summary>信息没有公开,但我如何才能公开这些信息,以便消费者获得intellisense中的信息?

/// <summary>
/// Obtains a list of agreements for a given dealer
/// </summary>
/// <param name="query">Object identifying the dealer<see cref="AgreementListRequest"/></param>
/// <returns>Object containing a list of all agreements for the provided dealer<see cref="AgreementListResponse"/></returns>
[OperationContract]
[FaultContract(typeof(DatabaseFault))]
[FaultContract(typeof(ServiceAgentFault))]
AgreementListResponse GetAgreements(AgreementListRequest request);
Run Code Online (Sandbox Code Playgroud)

c# wcf intellisense

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

将逻辑放在ViewModel geters中

您如何将Get-logic放入ViewModel的getter中?就像是:

public class DummyViewModel
{
    public int Id { get; set; }

    private DummyObject myObject;

    public DummyObject MyObject
    {
        get
        {
            if (MyObject == null)
            {
                DummyRepository repo = new DummyRepository();
                myObject = repo.Get(Id);
            }
            return myObject;
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

这是不好的做法,还是完全没问题?通过在那里完成所有的get-logic,我发现我的控制器变得非常臃肿,但我真的很沮丧,我应该把它放在哪里......

我这样做的原因是我可以将ViewModel传递给不同类型的视图,并且只根据请求的属性执行必要的DB查找.

c# model-view-controller asp.net-mvc

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

在 Roslyn 中获取 SymbolCallerInfo 的通用参数

我试图在调用该方法的解决方案中找到所有位置IBus.Publish<T>(来自 NServiceBus)。到目前为止,这是有效的:

IMethodSymbol method = ... [IBus.Publish methodsymbol resolved];
var callers = method.FindCallers(solution, new CancellationToken());
Run Code Online (Sandbox Code Playgroud)

这导致 aIEnumerable<SymbolCallerInfo>并且我得到了对该方法的所有正确引用。

我现在将如何去IBus.Publish调用泛型参数?我是否必须手动解析源树,或者它是否存在一些我可以利用的 Roslyn 魔法?

例子:

在我的代码中,我有:

IBus _bus;

_bus.Publish<IMyMessage>(msg => { msg.Text = "Hello world"});
Run Code Online (Sandbox Code Playgroud)

我有兴趣获得IMyMessage类型。

非常感谢您的帮助!

c# generics roslyn

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