小编Ale*_*der的帖子

连接两个词典

鉴于一些字典

Dictionary<string, string> GroupNames = new Dictionary<string, string>();
Dictionary<string, string> AddedGroupNames = new Dictionary<string, string>();
Run Code Online (Sandbox Code Playgroud)

我无法将它们合并为一个:

GroupNames = GroupNames.Concat(AddedGroupNames);
Run Code Online (Sandbox Code Playgroud)

因为"类型不能被隐式转换".我相信(我的代码证明我是真的)他们的类型是一样的 - 我可以忽略什么?

c# implicit-conversion

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

"找到的程序集的清单定义与程序集引用不匹配"

我已经将.NET WebAPI应用程序(针对.NET 4.5.2编译并在本地运行)部署到Azure应用服务中.

抛出的错误是

无法加载文件或程序集'System.Web.Mvc,Version = 4.0.40804.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.

我已检查App服务bin目录中的System.Web.Mvc.dll 大小为505504字节 - 与我的本地System.Web.Mvc.dll大小相同,版本为4.0.40804.0,更改了2014-09 -25,在本地工作没有问题.我能说的唯一区别是我在本地安装了.NET 4.5.2,而不是像Azure那样安装4.6.1.

我的Web.config中的条目是

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

但我已经尝试过了

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

这也不起作用.

如何为我的应用程序编辑该条目以查找System.Web.Mvc.dll?

作为参考,完整的错误消息是:

'/'应用程序中的服务器错误.

无法加载文件或程序集"System.Web.Mvc"或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.IO.FileLoadException:无法加载文件或程序集"System.Web.Mvc"或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

来源错误:

在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.

程序集加载跟踪:以下信息有助于确定无法加载程序集"System.Web.Mvc"的原因.

警告:装配绑定日志记录已关闭.要启用程序集绑定失败日志记录,请将注册表值[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)设置为1.注意:程序集绑定失败日志记录会导致一些性能损失.要关闭此功能,请删除注册表值[HKLM\Software\Microsoft\Fusion!EnableLog].

堆栈跟踪:

[FileLoadException:无法加载文件或程序集'System.Web.Mvc'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)]

[FileLoadException:无法加载文件或程序集'System.Web.Mvc,Version = 4.0.40804.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(来自HRESULT的异常:0x80131040)] System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark&stackMark,IntPtr pPrivHostBinder,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks)+0 System.Reflection.RuntimeAssembly .nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,StackCrawlMark&stackMark,IntPtr pPrivHostBinder,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks)+36 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName …

c# asp.net asp.net-mvc azure .net-assembly

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

数据类型文本不能用作UNION,INTERSECT或EXCEPT运算符的操作数,因为它不具有可比性

我有一张桌子

  • Id(PK)
  • 所有者int
  • DescriptionText文本

它连接到另一个表

  • Id(FK)
  • 参与者int

所有者可以是参与者,如果是,则所有者和参与者中的相同参考(进入用户表).所以我做了:

SELECT TableA.Id,TableA.Owner,TableA.Text
FROM TableA
WHERE TableA.Owner=@User
UNION
SELECT TableA.Id,TableA.Owner.TableA.Text
FROM TableA LEFT JOIN TableB ON (TableA.Id=TableB.Id)
WHERE TableB.Participant = @User
Run Code Online (Sandbox Code Playgroud)

此查询应返回所有不同的数据集,其中某个@User是所有者或参与者或两者.

如果SQL Server不抛出,它会

数据类型文本不能用作UNION,INTERSECT或EXCEPT运算符的操作数,因为它不具有可比性.

由于Id是PK,而Text来自同一个表,为什么SQL Server想要比较Text呢?

我可以UNION ALL用来阻止重复检测,但是我可以绕过这一点而不会失去结果的清晰度吗?

sql t-sql sql-server union

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

将charArray转换为byteArray

我有一个字符串,在任何情况下都满足([a-zA-Z0-9])*,我想让它通过sha1.

那么如何将字符串(或使用ToCharArray()获得的char数组)转换为字节数组?

到目前为止,我发现的所有答案都有很多注释,为什么从字符串到字节数组的转换是邪恶的,它们提供了字符编码教程的链接,并包含了一堆膨胀代码的字符编码.

在我的情况下,转换应该是一个LINQ oneliner,安全和整洁.

我试过了:

sha.ComputeHash(validator.ToCharArray().ToArray<byte>())
Run Code Online (Sandbox Code Playgroud)

就我的LINQ知识而言,我玩了很多:

sha.ComputeHash(validator.ToCharArray().ToArray<byte>(c => (byte)c))
Run Code Online (Sandbox Code Playgroud)

c# linq

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

npm:"找不到模块内部/错误"

在具有最新版本NodeJS的MacBook上,我正在尝试更新npm:

npm install npm@latest
Run Code Online (Sandbox Code Playgroud)

错误消息是:

npm ERR: code MODULE_NOT_FOUND
npm ERR: Cannot find module 'internal/errors'
npm ERR: A complete log of this run can be found in:
npm ERR:     /Users/alexander/.npm/_logs/2017_09_15_12_35_47_079Z-debug.log
Run Code Online (Sandbox Code Playgroud)

并且引用的日志文件读取

0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node',
1 verbose cli   '/usr/local/bin/npm',
1 verbose cli   'install',
1 verbose cli   'npm@latest' ]
2 info using npm@5.3.0
3 info using node@v8.5.0
4 verbose npm-session 5db7f116200ca64c
5 verbose stack Error: Cannot find module 'internal/errors'
5 verbose …
Run Code Online (Sandbox Code Playgroud)

node.js npm

13
推荐指数
2
解决办法
9145
查看次数

list.Take(100).ToList()与list.GetRange(0,100)

List<AttendeeInfo> attendees = new List<AttendeeInfo>();
foreach ...
// Error: "There are too many target users in the email address array"
// for more than 100 attendees. So take the first 100 attendees only.
if(attendees.Count > 100) attendees = attendees.GetRange(0,100);
// or
if(attendees.Count > 100) attendees = attendees.Take(100).ToList();
Run Code Online (Sandbox Code Playgroud)

由于我的列表总是超过100,并且始终占据前100个,因此最明显的差异(评估策略,跳过可能性,抛出错误)并不是很有趣.

但也许您可以了解究竟"创建源列表中一系列元素的浅层副本"的含义.这听起来真的很贵,比Take更重要,但是呢?

c# linq

10
推荐指数
2
解决办法
5988
查看次数

Xcode:签名说"找不到帐户",但是帐户说它存在

我是一个试图签署iOS应用程序的Windows用户 - 首先进行测试,稍后我将不得不签署发布到应用程序商店.一如既往,我被困在某个地方.

我尝试了:我在Xcode中打开*.xcodeproj文件,转到常规 - >签名,它告诉我

找不到帐户
添加开发者帐户以对您的应用进行签名
[添加帐户...]

所以我点击按钮,打开"帐户"窗口,打开对话框

使用Apple ID
登录Xcode使用Apple ID 登录Xcode.没有Apple ID?你可以免费创建一个.
Apple ID密码(忘记密码)
[______] [______]
[创建Apple ID] [取消] [登录]

在它后面的窗口中,Apple ID已经可见.我的Apple ID.

但我当然可以再次输入.或者不,哎哟:

账户已存在.
此帐户已添加
[确定]

此外,我无法将帐户从帐户窗口拖到签名窗口,更不用说使用上下文菜单.

如何将已添加的帐户添加到"签名"中?

xcode code-signing ios

9
推荐指数
3
解决办法
9068
查看次数

Chrome扩展程序消息传递:未经检查的runtime.lastError:无法建立连接。接收端不存在

我的chrome扩展程序具有以下两个JavaScript:

background.js,作为后台脚本运行:

chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
    if (message.data == "takeScreenshot") {
        var resp = sendResponse;
        chrome.tabs.captureVisibleTab(function(screenshotUrl) {
            resp({
                screenshot: screenshotUrl
            });
        });
        return true; // Return true to tell that the response is sent asynchronously
    } else {
        return "TestReply";
    }
});
Run Code Online (Sandbox Code Playgroud)

api.js,作为可通过网络访问的资源运行:

window.takeScreenshot = (function() {
    var isTakingScreenshot = false; // Semaphore
    return function() {
        if(isTakingScreenshot) return Promise.reject();
        isTakingScreenshot = true;
        return new Promise(function(resolve, reject) {
            chrome.runtime.sendMessage("eomfljlchjpefnempfimgminjnegpjod", "takeScreenshot", function(response) {
                console.log(response);
                isTakingScreenshot = false;
                resolve(response.screenshot);
            });
        }); …
Run Code Online (Sandbox Code Playgroud)

google-chrome-extension

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

WebApi应用程序:错误404.0,处理程序StaticFile

我刚刚尝试在带有IIS 7.0的Windows 2008R2上部署WebApi应用程序,直到现在IIS操作系统都未触及.

该应用程序在我们的开发服务器(相同的Win和IIS版本)上运行,没有麻烦.在部署服务器上

  • 安装了.NET Framework 4.5,
  • ASP.NET功能已安装和
  • 已安装Windows身份验证

当我调用应映射到ASP.NET的URL时,错误是

      HTTP Error 404.0

       Module IIS Web Code
 Notification MapRequestHandler
      Handler StaticFile
   Error code 0x80070002
Requested URL http://localhost:80/myapp/api/GetUserConfig
Physical Path C:\inetpub\wwwroot\myapp\api\GetUserConfig
 Logon Method Negotiate
   Logon User ADDOMAIN\Administrator
Run Code Online (Sandbox Code Playgroud)

Handler StaticFile似乎很重要 - 据我所知,原因是ASP.NET没有正确处理URL.我在哪里可以开始搜索此问题的实际根源?

我应该补充说,在Windows 2012环境中,多个其他部署都是成功的.

.net c# asp.net iis asp.net-web-api

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

'void'是函数的有效返回值吗?

private void SaveMoney(string id...)
{
    ...
}

public void DoSthWithMoney(string action,string id...)
{
    if(action=="save") return SaveMoney(string id);
    ...
}
Run Code Online (Sandbox Code Playgroud)

为什么C#不允许我通过公共函数返回私有函数的空白?它甚至是相同的数据类型"无效"......

或者数据类型是否无效?

以下代码真的是最短的解决方法吗?

if(action=="save") {
    SaveMoney(string id);
    return;
}
Run Code Online (Sandbox Code Playgroud)

c# return void

7
推荐指数
2
解决办法
4019
查看次数