我最近开始按照本指南将我的项目迁移到.NET 4.5.1和Web Api 2.
MS开发人员Rick Anderson要求你做的第一件事就是改变:
WebApiConfig.Register(GlobalConfiguration.Configuration);
Run Code Online (Sandbox Code Playgroud)
至
GlobalConfiguration.Configure(WebApiConfig.Register);
Run Code Online (Sandbox Code Playgroud)
在global.asax文件中.然而,当我尝试构建时,这给了我一个错误:
错误1'System.Web.Http.GlobalConfiguration'不包含'Configure'的定义
我的项目目前是MVC 5和Web Api 2和.NET 4.5.1,但我认为System.Web.Http仍然认为它是.NEt 4.0版本.
我该怎么办呢?
谢谢.
编辑:
这是我的程序集绑定:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<!--
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly> -->
</assemblyBinding>
Run Code Online (Sandbox Code Playgroud)
顶部评论后评论的所有内容都因为我收到了错误:
警告2发现无法解析的同一依赖程序集的不同版本之间发生冲突.当日志详细程度设置为详细时,这些引用冲突将在构建日志中列出.
并且摆脱硬绑定正在解决这个问题.
我正在尝试在Eclipse中设置Apache Tomcat 7.0服务器,但我无法让向导让我创建它.我选择Tomcat v7.0之后,我的NEXT按钮不会突出显示:

我没有尝试创建任何其他版本的Tomcat,只是v7.0:

关于我的系统的信息: - 我以前已经启动并运行了,但是我不得不重新启动我的系统,Eclipse不受影响,因为它在不同的硬盘上 - 我重新安装了Tomcat 7.0两次,一次到驱动器包含这个特定的Eclipse工作区,一次到我的主OS驱动器,都无济于事.
谁能告诉我这里我做错了什么或者这里发生了什么?
非常感谢你.
我目前正试图通过使用信号(在这种情况下为SIGINT)来摆脱wait()和/或write()的等待.我的程序没有按预期离开.
void sigHandler(int signal ){
printf(" Exit\n");
//x is global
x = 1;
return;
}
Run Code Online (Sandbox Code Playgroud)
我从主要的剪断我被挂断主要是:
clientfd = accept( sockfd, (struct sockaddr *) &client_addr, (unsigned int *) &client_addr_len );
Run Code Online (Sandbox Code Playgroud)
当我点击这个并使用我的信号并返回时,我仍然停留在这行代码上,等待用户连接到我的套接字.处理程序中的x是针对外部循环的这段代码所在.
有没有更好的方法来做我想做的事情?另外,如果这还不够,请告诉我.
谢谢.
编辑:
这是对信号的检查,它回到了主要的顶部.我认为这就是你要求的:
if ( signal( SIGINT, signalhandler ) == SIG_ERR ){
return( 1 );
}
Run Code Online (Sandbox Code Playgroud) 我正在使用的数组是:
char arr[91][12];
Run Code Online (Sandbox Code Playgroud)
所以我使用for循环从文件填充我的数组,如下所示:
for(i = 0; fgets(arr[i], 12, inFile); i++){}
Run Code Online (Sandbox Code Playgroud)
当我想从该数组中打印任何内容时,它会自动转义到下一行.
测试该数组:
for(i = 0; fgets(arr[i], 12, inFile); i++){
printf("%s", arr[i]);
}
//one
//two
//three etc.
//want it to be 'one two three etc.'
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用strpbrk()来查找\n数组中的每个字符串并将其更改为\0:
for(i = 0; fgets(arr[i], 12, inFile); i++){
if(strpbrk(arr[i], "\n") != NULL ){
arr[i][strpbrk(arr[i], "\n")] = '\0';
}
printf("%s", arr[i]);
}
Run Code Online (Sandbox Code Playgroud)
但这给了我错误.有没有更好的方法来做我想做的事情?