我知道有几个问题有点像这个,但由于我无法找到任何文档而其他问题都没有任何答案可以帮助我,这里有:
我创建了一个新的ASP.NET应用程序(VS2013),选择了MVC,我添加了API.我在Package Console中运行"update-package"以更新到最新版本(MVC 5.1.2,Web Api 5.1.2).
然后我添加新的Ninject.MVC5和Ninject.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的一些调用,但是......
任何帮助都会得到满足!
这开始是一个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"注册订阅.请重新注册此提供商以访问此位置.
我正在尝试让我的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文件夹是否应该保留为空(某种临时存储?)还是应该包含下载的包?
我正在研究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)
我有点期待这个以完全相同的方式工作?
我做错了什么/我错过了什么?
谢谢,斯蒂恩
我有一个网站已经运行了好几个月,现在,突然间,没有任何作用.该站点使用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.QueryOperation1.GetFirstBatch(IConnectionProvider connectionProvider) at MongoDB.Driver.Operations.QueryOperation1.Execute( System.Linq.Buffer1..ctor(IEnumerable1上的IConnectionProvider connectionProvider)System.Linq.OrderedEnumerable1.<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)(IEnumerable1 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. …
我在 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功能,当我将图像添加到我的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)
编辑:看看这里我的问题的最终解决方案:在云中完成工作
我正在使用 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 权限(以下是日志和标准输出文件夹),对两个用户都相同:
更新
我刚刚安装了 AspNetCore.2.0.7.RuntimePackageStore_x64 和 dotnet-runtime-2.0.7-win-x64 但它仍然无法正常工作。
我正在为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) azure ×3
c# ×3
asp.net-mvc ×2
asp.net-core ×1
events ×1
global-asax ×1
iis-10 ×1
lazy-loading ×1
ninject ×1
nuget ×1
teamcity-7.0 ×1