小编Con*_*ark的帖子

TFS - 无法配置报告服务:"找不到或无法访问您指定的服务器"

我正在尝试为TFS2010配置Reporting Services.单击"报告"中的编辑后,在Team Foundation Server管理控制台中,我可以无错误地配置所有内容.

仓库:

服务器: INDEPENDIENTE01

数据库: Tfs_Warehouse

(单击测试连接会显示绿色标记)

分析服务

服务器: INDEPENDIENTE01

数据库: Tfs_Analysis

(单击测试连接会显示绿色标记)

报告

服务器: INDEPENDIENTE01

(单击"填充URL"显示正确的URL)

默认路径:/TfsReports

但是,当我点击确定时,我收到此消息:

The server that you specified was not found or cannot be reached. Specify another server

我有两台服务器,一台使用TFSWSS,另一台使用SQL Server 2008.我已将报表服务器数据库配置更改为纯模式.尝试使用网络服务帐户和其他帐户.我可以访问两个网址(INDEPENDIENTE01/ReportsINDEPENDIENTE01/ReportServer)显然我也打开了所有需要的端口(否则我认为它甚至不会填充网址)

我的问题与此类似:http: //social.msdn.microsoft.com/Forums/en/tfsreporting/thread/cfcb3031-c19a-474d-aab4-3b88ecd248e1

除了它没有解决我的问题.

(我讨厌那些非特定的错误消息,微软有什么问题...)

sql-server-2008 reporting-services tfs2010

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

使用LINQ对单个对象被认为是一种不好的做法?

我并不是说这个问题过于主观.

我已经谷歌了一段时间但没有得到解决这个问题的具体答案.问题是,我认为我对LINQ有点上瘾.我已经使用LINQ来查询列表,比如使用Linq到Sql,Xml等等.但后来有些事情让我感到震惊:"如果我用它来查询单个对象怎么办?" 所以我做了.试图用手榴弹发射器杀死一只苍蝇似乎有点不对劲.虽然我们都同意这看起来很艺术.


我认为它非常易读,我认为这方面没有任何性能问题,但让我举个例子.

在Web应用程序中,我需要从配置文件(web.config)中检索设置.但是如果密钥不存在,则应该有一个默认值.此外,我需要的值是十进制,而不是一个字符串,这是默认的返回ConfigurationManager.AppSettings["myKey"].此外,我的电话号码不应超过10,也不应该是负数.我知道我可以这样写:

string cfg = ConfigurationManager.AppSettings["myKey"];
decimal bla;
if (!decimal.TryParse(cfg,out bla))
{
    bla = 0; // 0 is the default value
}
else
{
    if (bla<0 || bla>10)
    {
        bla = 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

这不复杂,不复杂,易读.但是,这就是我喜欢它的方式:

// initialize it so the compiler doesn't complain when you select it after
decimal awesome = 0; 
// use Enumerable.Repeat to grab a "singleton" IEnumerable<string>
// which is feed with the value got from app …
Run Code Online (Sandbox Code Playgroud)

c# linq

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

TFS 2010 API - 迭代QueryHistory中返回的更改集列表太慢了

长话短说.分析后,此命令占用处理的0.1%

var ChangesetList = TFSConnection.GetInstance().GetVersionControl().QueryHistory
    (Path, VersionSpec.Latest,0, RecursionType.Full, "", null, 
    VersionSpec.Latest, Int32.MaxValue,true, false);
Run Code Online (Sandbox Code Playgroud)

这一个,65.7%.(有趣的是,内部的所有处理只消耗3%)

foreach (Changeset changeset in ChangesetList)
Run Code Online (Sandbox Code Playgroud)

我得到我的清单需要几秒钟......发生了什么事?为什么在列表中迭代这么慢?

有没有更快的方法来做到这一点?

编辑:另外,为什么我不能直接将其转换为List<Changeset>

.net c# changeset tfs-sdk tfs2010

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

C#无法将lambda表达式转换为"动态"类型,因为它不是委托类型

假设我有一个

List<dynamic> myList = new List<dynamic>();
Run Code Online (Sandbox Code Playgroud)

在课堂内:

public class DynamicMixin : DynamicObject
{
    internal List<dynamic> myList= new List<dynamic>();

    public void AddInterface<T>(T _item) where T:class{
        Interfaces.Add(_item);
    }

    public override bool TryGetIndex(GetIndexBinder binder, object[] indexes, out object result)
    {
        if (myList.Contains((item)=>item.GetType().Equals(indexes[0].GetType())){
            /* do something */
        }
        return base.TryGetIndex(binder, indexes, out result);
    }

}
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写myDynamicObject [typeof(IDisposable)]所以我会得到属于myDynamicObject的IDiposable对象.

这行给了我一个错误:

if (myList.Contains((item)=>item.GetType().Equals(indexes[0].GetType())){
Run Code Online (Sandbox Code Playgroud)

无法将lambda表达式转换为"动态"类型,因为它不是委托类型

我可以通过迭代列表来做到这一点:但为什么我无法使用Contains

c# list dynamic

3
推荐指数
2
解决办法
3280
查看次数