小编for*_*reh的帖子

为什么System.Web.Mvc未在添加引用中列出?

使用C#,Visual Studio 2010.

在MSDN上有一个名为System.Web.Mvc的命名空间.该命名空间中所有类型的文档说明它们都在System.Web.Mvc.dll.

但是,当我转到Add Reference,".NET"选项卡时,列表中缺少此程序集.为什么?

.net visual-studio assembly-references

129
推荐指数
9
解决办法
16万
查看次数

无法将ChilkatDotNet4.dll注册到GAC

我正在尝试向GAC添加.NET 4.0 .dll.我试图这样做是因为它是由第三方公司发布的32和64位.dll,我必须在两种格式的不同平台上使用不同的应用程序.

无论如何,我无法在Windows Server 2008环境中将此dll注册到GAC.

我尝试将本地计算机上"C:\ Program Files(x86)\ Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools"中的gacutil.exe(和支持文件)复制到"C:\ Windows"\Microsoft.NET\Framework\v4.0.30319"目标生产服务器上的文件夹,根据此处提供的建议.

然后我尝试将它们复制到"C:\ Windows\Microsoft.NET\Framework64\v4.0.30319".

从两个位置运行表明安装成功.事实上,注册似乎是成功的:

  • C:\ WINDOWS\Microsoft.NET \装配\ GAC_64\ChilkatDotNet4\v4.0_9.0.8.0__eb5fc1fc52ef09bd\ChilkatDotNet4.dll
  • C:\ WINDOWS\Microsoft.NET \装配\ GAC_32\ChilkatDotNet4\v4.0_9.0.8.0__eb5fc1fc52ef09bd\ChilkatDotNet4.dll

但是,使用以下消息运行引用dll(64位)版本的控制台应用程序错误:

System.IO.FileNotFoundException:无法加载文件或程序集"ChilkatDotNet4.dll"或其依赖项之一.指定的模块无法找到.文件名称:'ChilkatDotNet4.dll'

所以,我现在已经使用mkdir手动创建了以下GAC条目并从命令提示符复制(实际上可能有也可能没有.我不知道gacutil.exe有什么特别之处):

  • C:\ Windows\Microsoft.NET\assembly\GAC_MSIL\ChilkatDotNet4\v4.0_9.0.8.0__eb5fc1fc52ef09bd\ChilkatDotNet4.dll(使用64位版本的dll)
  • C:\ WINDOWS \装配\ GAC_64\ChilkatDotNet4\v4.0_9.0.8.0__eb5fc1fc52ef09bd\ChilkatDotNet4.dll
  • C:\ WINDOWS \装配\ GAC_32\ChilkatDotNet4\v4.0_9.0.8.0__eb5fc1fc52ef09bd\ChilkatDotNet4.dll

在每次"安装"dll之后,我测试并收到了同样的错误.欢迎任何想法!


编辑:上面的GAC问题实际上可能不是罪魁祸首.事实证明,即使我创建一个全新的Console App项目并直接添加.dll(以便它存在于bin中),我仍然无法在服务器上运行它.此外,我注意到控制台应用程序是针对.NET 4.0客户端配置文件而不是.NET Framework 4创建的.当我尝试针对客户端配置文件运行它时,似乎没有任何System.Web*库可用.但是,我尝试运行一个非常简单的测试应用程序,同时针对两者,并且在引用坏的.dll时都不会在服务器上运行.

是否有一种特殊的安装方式可以运行.NET 4.0控制台应用程序?

dll gac gacutil .net-4.0

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

KnockoutJS在空白元素上调用afterAdd函数

一般来说,我是KnockoutJS中模板数据绑定的afterAdd属性的忠实粉丝.但是,我发现我的afterAdd回调总是被击中3次,我不知道为什么.我做错了什么吗?

回调的工作方式如下:

  • 调用1:textnode
  • 调用2:我关心的实际元素
  • 调用3:textnode

为了应对,我的所有处理程序最终都检查了isElementContentWhitespace,如下所示:

HTML

<ul class="t" data-bind="template: {name: 'itemTmplt', foreach: items, afterAdd: function(elem, idx, val) {my.ko.itemAdd(elem, idx, val);} }">
</ul>
<script id="itemTmplt" type="text/html">
    <li class="tbl" data-bind="attr: {id: name}">
        <h3 data-bind="text: name"></h3>
    </li>
</script>
Run Code Online (Sandbox Code Playgroud)

JS

my.ns("mme.ko");
my.ko = (function () {
    "use strict";

    return {
        itemAdd: function (elem, idx, val) {
            if (elem.isElementContentWhitespace) { return; }

            /*** do stuff here ***/
        }
    };
} ());
Run Code Online (Sandbox Code Playgroud)

knockout.js

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

如何链接"GraphQL for .NET"和"Relay"中的模式?

我想构建一个Web应用程序,前端使用Javascript,后端使用C#,我想确定GraphQL的值.

  • 对于我的C#后端,我使用名为GraphQL for .NET的GraphQL实现.
  • 对于我的前端,我想使用Relay,因为它与ReactJS配合得很好.

现在,对于我的后端,我实现了一个示例模式,如下所示:

public class StarWarsSchema : Schema
{
    public StarWarsSchema()
    {
        Query = new StarWarsQuery();
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的前端,我现在需要以某种方式告诉Relay这个架构.至少这是我在阅读教程时所理解的,因为出于某种原因需要转换GraphQL查询.这是一个例子,我想加载所有机器人:

class Content extends React.Component<ContentProps, { }> {
    ...
}

export default Relay.createContainer(Content, {
    fragments: {
        viewer: () => Relay.QL`
            fragment on User {
                query HeroNameQuery {
                    droids {
                        id
                        name
                    }
                }
            }
        `,
    }
});
Run Code Online (Sandbox Code Playgroud)

在Relay的一个例子中,我看到babel-relay-plugin用于转换.它获取一个模式文件(JSON).该入门继电器的指南显示,如何建立这样的架构graphql-JS和graphql继电器JS.

现在我的问题:

  1. 我真的需要在前端和后端创建模式吗?
  2. 教学Relay我的模式有什么意义,因为后端已经使用模式来返回格式良好的数据?
  3. 在这种情况下使用Relay有什么好处?当我通过常规REST端点以及GraphQL查询作为参数访问后端时,我会失去什么?

c# relay reactjs graphql asp.net-core

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

IIS 7.0与7.5站点Microsoft.Web.Administration.Site BindingCollection

我编写了一个程序,它接受一个主机名列表和一个站点名称,如果它们在任何站点上都不存在,则将它们作为绑定添加到站点.该程序是用.NET 4.0 C#编写的.

在本地(IIS 7.5,Win 7),下面的代码工作正常.它检测绑定并退出.在我的服务器(IIS 7.0,Win Server 2008)上,检查失败,并始终添加绑定.是什么赋予了?

LINQ查询是错误的还是Microsoft.Web.Administration库有一些处理IIS 7.0的基本不足之处?

以下是应该在两台机器上运行的代码的一部分:

ServerManager oIisMgr = new ServerManager();
Site oSite = oIisMgr.Sites[siteName];
string sBindInfo = ":80:" + this.StripUrl(hostName);

//See if this binding is already on some site
if (oIisMgr.Sites
    .Where(ST => ST.Bindings.Where(B => B.BindingInformation == sBindInfo).Any())
    .Any()) return true;

Binding oBinding = oSite.Bindings.CreateElement();
oBinding.Protocol = "http";
oBinding.BindingInformation = sBindInfo;
oSite.Bindings.Add(oBinding);

oIisMgr.CommitChanges();
Run Code Online (Sandbox Code Playgroud)

.net c# linq iis-7 iis-7.5

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

"重建解决方案"编译成功的解决方案中的网站无法启动调试器

我有一个包含网站的解决方案(使用网站模板而不是网络应用程序项目模板创建 - 转换不是一个选项,顺便说一句).

当我重建所有时,编译成功,但奇怪的是显示3个错误,所有这些错误都是"无法获得项目引用'PROJNAME'的依赖项".当我尝试启动调试器时,我得到"存在构建错误".对话.

两个问题:

  1. 如果我在调试错误对话框中选择"是"选项来运行上一次成功的构建,它是否会运行我的Rebuild All刚刚编译的代码?
  2. 我该如何解决这个问题?

我检查过这篇文章,我的前景让我心灰意冷.但奇怪的是,我将这些相同的项目添加到一个单独的网站解决方案中,编译/调试很好,删除了测试网站并重新添加了我想要调试的目标网站,但它以同样的方式失败了.是否有.NET网站的秘密网站.proj文件?

无法获得项目参考的依赖项

debugging reference visual-studio-2008

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

仅存在于选择数据的TransactionScope是否需要调用Complete()

为了从不受脏数据影响的应用程序的一部分中选择数据,我创建了一个TransactionScope,根据Hanselman的建议在指定ReadUncommitted IsolationLevel .

我的问题是,我是否仍然需要在using块的末尾执行oTS.Complete()调用,即使这个事务范围不是为了在插入,更新或删除期间跨两个数据库桥接对象依赖性而构建的?

例如:

List<string> oStrings = null;
using (SomeDataContext oCtxt = new SomeDataContext (sConnStr))
using (TransactionScope oTS = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted }))
{
     oStrings = oCtxt.EStrings.ToList();
     oTS.Complete();
}
Run Code Online (Sandbox Code Playgroud)

c# transactions linq-to-sql

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