小编Ste*_*rup的帖子

获取最新的Ninject使用最新的MVC 5/Web Api 2?

我知道有几个问题有点像这个,但由于我无法找到任何文档而其他问题都没有任何答案可以帮助我,这里有:

我创建了一个新的ASP.NET应用程序(VS2013),选择了MVC,我添加了API.我在Package Console中运行"update-package"以更新到最新版本(MVC 5.1.2,Web Api 5.1.2).

然后我添加新的Ninject.MVC5Ninject.Web.WebApi包.

我将这些行添加到web.config文件(Ninject想要5.0版本,我有5.1):

        <dependentAssembly>
            <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Http.WebHost" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="1.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
        </dependentAssembly>
Run Code Online (Sandbox Code Playgroud)

在App_start/NinjectWebCommon.cs文件中,我添加了一个绑定:

    private static void RegisterServices(IKernel kernel) {
        kernel.Bind<ILogger, NLogLogger>();
    }
Run Code Online (Sandbox Code Playgroud)

然后我添加一个ApiController,ILogger作为构造函数中的单个参数,我将ILogger作为参数添加到HomeController的构造函数中.

那应该是测试吗?

我错过了WebApi的一些接线吗?或者这是在"幕后"发生的?

无论如何,访问api控制器给了我这个错误:

尝试创建"TestController"类型的控制器时发生错误.确保控制器具有无参数的公共构造函数.

尝试HomeController给了我这个:

你调用的对象是空的.

我尝试了同样的事情,没有更新到最新的包,同样的问题.我已经使用Ninject多年使用MVC 3(我也尝试过Ninject.MVC3包),并且我完全不知道为什么它不起作用.使用WebApi,我有点期待对SetResolver的一些调用,但是......

任何帮助都会得到满足!

c# ninject asp.net-web-api2 asp.net-mvc-5.1

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

Azure:MissingRegistrationForLocation:未在"YYYY"位置为资源类型"XXXX"注册订阅

这开始是一个SubscriptionNotFound错误.

var dnsClient = new DnsManagementClient(new Microsoft.Azure.TokenCloudCredentials(result.AccessToken));

var zone = dnsClient.Zones.CreateOrUpdate("someresourcegroup", "mydomain.com", new Microsoft.Azure.Management.Dns.Models.ZoneCreateOrUpdateParameters {
        IfNoneMatch = "*",
        Zone = new Microsoft.Azure.Management.Dns.Models.Zone {
            Name = "mydomain.com",
            Location = "northeurope"
        }
    });
Run Code Online (Sandbox Code Playgroud)

现在我已经解决了这个问题,感谢对原始问题的回复.它仍然是相同的代码,我使用follow PowerShell命令重新注册了功能/提供程序:

Register-AzurermresourceProvider -ProviderNamespace Microsoft.Network
Run Code Online (Sandbox Code Playgroud)

但是这不需要位置参数,并且错误是关于位置中的资源.是什么赋予了?而且我尝试过"北欧"而不是"东北欧",结果相同.

那我错过了什么?似乎找不到关于这个问题的任何数据,不是在这里而是在谷歌上没有.

完整的错误消息是:

MissingRegistrationForLocation:未在"northeurope"位置为资源类型"dnszones"注册订阅.请重新注册此提供商以访问此位置.

c# azure azure-resource-manager

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

TeamCity与NuGet,缺少参考

我正在尝试让我的TeamCity服务器从NuGet中获取包,因此我不必在我的存储库中包含所有程序集.

最初一切似乎都在起作用,但是当MSBuild步骤开始时,所需的程序集/包无处可寻.

我已将我的packages文件夹添加到我的存储库,并尝试启用我的项目"启用NuGet包恢复",如下所示:

http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

似乎都没有用.当我查看工作目录()中的packages文件夹时,它是空的,所以没有拾取包?

以下是nuget任务的日志:

[09:11:44][Step 1/2] install: Installing NuGet packages for ApplicationBoilerplate\packages.config
[09:11:44][install] NuGet command: C:\TeamCity\buildAgent\tools\NuGet.CommandLine.2.0.0.nupkg\tools\NuGet.exe install C:\TeamCity\buildAgent\work\76a8f67cab97e73b\ApplicationBoilerplate\packages.config -OutputDirectory C:\TeamCity\buildAgent\work\76a8f67cab97e73b\packages
[09:11:44][install] Starting: C:\TeamCity\buildAgent\temp\agentTmp\custom_script862718012095619696.cmd
[09:11:44][install] in directory: C:\TeamCity\buildAgent\work\76a8f67cab97e73b\ApplicationBoilerplate
[09:11:45][install] Process exited with code 0
Run Code Online (Sandbox Code Playgroud)

package文件夹是否应该保留为空(某种临时存储?)还是应该包含下载的包?

nuget teamcity-7.0

7
推荐指数
1
解决办法
4794
查看次数

ASP.NET MVC PostAuthorizeRequest(和其他事件)没有触发

我正在研究mvcForum项目(在codeplex上),并希望从global.asax文件中删除尽可能多的代码 - 主要是为了更容易将mvcForum集成到现有的ASP.NET MVC应用程序中,而无需更改太多代码.

我需要挂钩应用程序事件才能设置正确的CultureInfo(取决于用户的选择等)和其他东西.

这在global.asax文件中不是问题:

protected void Application_PostAuthorizeRequest() {
       // Some code here!
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将代码移动到其他地方时,事件永远不会发生.我正在做的是这样的:

public MVCForumBootstrapper(HttpApplication app) {
    app.PostAuthorizeRequest += new EventHandler(app_PostAuthorizeRequest);
}
Run Code Online (Sandbox Code Playgroud)

而这在global.asax中

    protected void Application_Start() {
      var strapper = new MVCForumBootstrapper(this);
    }
Run Code Online (Sandbox Code Playgroud)

我有点期待这个以完全相同的方式工作?

我做错了什么/我错过了什么?

谢谢,斯蒂恩

asp.net-mvc events global-asax

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

MongoDB,C#,QueryFailure标志不是master而slaveOk = false

我有一个网站已经运行了好几个月,现在,突然间,没有任何作用.该站点使用MVC 5完成,并使用MongoDB进行存储.

我最好的猜测是MongoDB主机正在搞乱,这导致了问题,但......

我该怎么做以避免将来出现这个问题?我必须改变一些设置吗?

这是错误和堆栈跟踪:

QueryFailure标志不是master而slaveOk = false(响应是{"$ err":"not master and slaveOk = false","code":13435}).

at MongoDB.Driver.MongoReplyMessage 1.ReadHeaderFrom(BsonBuffer buffer) at MongoDB.Driver.Internal.MongoReplyMessage1.ReadFrom(BsonBuffer buffer)MongoDB.Driver.Internal.MongoConnection.ReceiveMessage [TDocument](BsonBinaryReaderSettings readerSettings,IBsonSerializer serializer,IBsonSerializationOptions serializationOptions),位于MongoDB.Driver.Operations.QueryOperation 1.GetFirstBatch(IConnectionProvider connectionProvider) at MongoDB.Driver.Operations.QueryOperation1.Execute( System.Linq.Buffer 1..ctor(IEnumerable1上的IConnectionProvider connectionProvider)System.Linq.OrderedEnumerable 1.<GetEnumerator>d__0.MoveNext() at System.Linq.Enumerable.<TakeIterator>d__3a1.MoveNext(1..ctor(IEnumerable)在System.Linq.Enumerable.ToList [TSource]的System.Collections.Generic.List 1 collection)(IEnumerable 1 source) at ScaleModellingCentral.Web.UI.Controllers.HomeController.Read() at lambda_method(Closure , ControllerBase , Object[] ) at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary2参数)在System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext,ActionDescriptor actionDescriptor,IDictionary)2 parameters) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult2.CallEndDelegate(IAsyncResult asyncResult)在System.Web.Mvc的System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<> c__DisplayClass46.b__3f()上的System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.b__3d()处. System.Web.Mvc.Async.AsyncControllerActionInvoker上的System.Web.Mvc.Async.AsyncControllerActionInvoker.<> c__DisplayClass21.<> c__DisplayClass2b.b__1c()中的Async.AsyncControllerActionInvoker.<> c__DisplayClass33.b__32(IAsyncResult asyncResult).<> c__DisplayClass21. …

asp.net-mvc mongodb-.net-driver

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

计时器触发的 Azure 函数未触发

我在 Azure 上有一个函数,具有以下 function.json 文件:

{
    "bindings": [
        {
            "type": "timerTrigger",
            "direction": "in",
            "schedule": "0 0 3 * * *",
            "name": "myTimer"
        }
    ],
    "disabled": false
}
Run Code Online (Sandbox Code Playgroud)

除非我错了,否则这应该使该函数每天凌晨 3 点运行一次?

这是函数的签名:

public static async Task Run(TimerInfo myTimer, TraceWriter log) {}
Run Code Online (Sandbox Code Playgroud)

那么我做错了什么?当我手动触发该功能(在门户中单击“运行”)时,该功能运行良好,但今天凌晨 3 点它没有运行,昨天也没有运行。

编辑:因此,按照建议,我已将计划更改为付费计划,并且选择了动态计划。日志仍然没有提及该功能在今天凌晨 3 点被激活的情况。

在此输入图像描述

azure azure-functions

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

如何绑定到ICloudBlob或其他一些(非字符串)类型

我一直在尝试创建一个Azure功能,当我将图像添加到我的blob存储帐户上的容器时触发.

唯一似乎有效的是,当我有一个字符串参数,但文件是图像,所以我没有使用包含图像数据的字符串.

所以我一直在尝试我可以在网上找到的每一个例子(不是那么多),现在我已经尝试了来自azure webjobs sdk的样本- 这也不是真的.所以要么我是愚蠢的,我现在感觉到的,我错过了一些明显的东西?

我得到了一些错误:

Microsoft.Azure.WebJobs.Host:错误索引方法'Functions.thumbnailgenerator'.Microsoft.Azure.WebJobs.Host:无法绑定BlobTrigger以键入"Microsoft.WindowsAzure.Storage.Blob.ICloudBlob".

Microsoft.Azure.WebJobs.Host:错误索引方法'Functions.thumbnailgenerator'.Microsoft.Azure.WebJobs.Host:无法绑定BlobTrigger以键入"Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob".

现在我正在尝试的功能是上面示例中给出的功能,就像我尝试过的其他许多功能一样,除了字符串外,它不能用于任何其他功能.

那么我应该如何创建函数(使用C#)和function.json文件,以使其与blob一起使用,并且最好使用blob的名称作为字符串.要么是blob in,要么是out,其中out blob的名称位于不同的容器中,并且名称以硬编码字符串为前缀.

这就是我现在得到的,它没有运行:

function.json

{
  "bindings": [
{
  "type": "blobTrigger",
  "name": "blob",
  "direction": "in",
  "path": "kitimages/{name}.{ext}"
},
 {
        "type": "blob",
        "name": "output",
        "direction": "inout",
        "path": "thumbnails/{name}_300_200.{ext}"
    }  ],
  "disabled": false
}
Run Code Online (Sandbox Code Playgroud)

run.csx

#r "Microsoft.WindowsAzure.Storage"
using System;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.WindowsAzure.Storage.Blob;
public static void Run(CloudBlockBlob blob, CloudBlockBlob output, TraceWriter log)
{
    log.Info($"C# Blob trigger function processed a blob. Blob={blob.Name}");
}
Run Code Online (Sandbox Code Playgroud)

编辑:看看这里我的问题的最终解决方案:在云中完成工作

azure azure-functions

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

ASP.NET Core 站点未在 IIS 上运行,可从命令行正常运行

我正在使用 ASP.NET Core 构建一个新的 Web 应用程序,并让它在 Visual Studio 的调试中运行良好。

我已经添加了 Serilog,使用滚动文件接收器,并且在 Visual Studio 中也运行良好。

然后我发布了应用程序(直接从 VS 发布,也使用 AppVeyor),并将它复制到我的网络服务器,在 IIS 中添加了一个站点等。

现在我收到“500 - 内部服务器错误。”。

没有日志写入文件系统,甚至没有写入标准输出文件。我添加了文件夹,为 IIS_IUSRS 帐户和应用程序池帐户添加了写入权限。

仍然没有日志!

尝试从命令行运行该站点工作正常,并且使用 Serilog 进行日志记录工作正常。

所以这与 IIS 有某种关系吗?但是没有任何日志,很难知道问题是什么。有任何想法吗?

奖金信息:

我已经在服务器上安装了 dotnet-sdk-2.1.200-win-x64 包。

web.config 文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\MySite.dll" stdoutLogEnabled="true" stdoutLogFile=".\app_data\stdout" />
  </system.webServer>
</configuration>
<!--ProjectGuid: B9DE9F34-1A9E-4D35-B6CE-74209A6CB9FA-->
Run Code Online (Sandbox Code Playgroud)

站点根文件夹的权限(与应用程序池用户相同):

根权限

app_data 权限(以下是日志和标准输出文件夹),对两个用户都相同:

app_data 权限

更新

我刚刚安装了 AspNetCore.2.0.7.RuntimePackageStore_x64 和 dotnet-runtime-2.0.7-win-x64 但它仍然无法正常工作。

c# iis-10 asp.net-core

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

实体框架4.1代码优先,所需的延迟加载引用在保存时为null

我正在为ASP.NET MVC 3构建一个论坛项目,在.NET 4上运行最新版本的Entity Framework.

我有通常的论坛设计,董事会与类别,类别与论坛,论坛与主题和主题与帖子等.

简化:

public class Category {
    [Required]
    public virtual Board Board { get; set; }
}
public class Forum {
    [Required]
    public virtual Category Category { get; set; }
}
public class Topic {
    [Required]
    public virtual Forum Forum { get; set; }
}
public class Post {
    [Required]
    public virtual Topic Topic { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

创建新帖子时,将通知主题,并在更改主题时通知论坛.

所以,再次简化:

public class Forum {
    public void TopicChanged(Topic topic) {
        // Do stuff
    }
}
public …
Run Code Online (Sandbox Code Playgroud)

lazy-loading entity-framework-4.1 asp.net-mvc-3

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