小编sco*_*ott的帖子

在进行visual studio自动化时,是否有更好的方法来处理RPC_E_CALL_REJECTED异常?

这就是我目前正在做的事情:

    protected void setupProject()
    {
        bool lbDone = false;
        int liCount = 0;
        while (!lbDone && liCount < pMaxRetries)
        {
            try
            {
                pProject.ProjectItems.Item("Class1.cs").Delete();
                lbDone = true;
            }
            catch (System.Runtime.InteropServices.COMException loE)
            {
                liCount++;
                if ((uint)loE.ErrorCode == 0x80010001)
                {
                    // RPC_E_CALL_REJECTED - sleep half sec then try again
                    System.Threading.Thread.Sleep(pDelayBetweenRetry);
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

现在我尝试阻止大多数调用EnvDTE的东西,它运行得很好.我遇到的问题是当我遍历一个集合并对每个项目执行一次操作时.

foreach(ProjectItem pi in pProject.ProjectItems)
{
    // do something to pi
}
Run Code Online (Sandbox Code Playgroud)

有时我会foreach(ProjectItem pi in pProject.ProjectItems)在行中获得异常.因为如果我得到RPC_E_CALL_REJECTED异常,我不想启动foreach循环,我不知道我能做什么.

编辑回答评论:是的我正在从另一个程序自动化VS,是的,我通常在同时使用VS做其他事情.我们有一个应用程序读取xml文件,然后根据xml文件生成大约50个VS解决方案.这通常需要几个小时,所以当我发生这种情况时,我会尝试做其他工作.

c# code-generation visual-studio-2010

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

^运算符做什么?

我以为^那样做了.我期望:

10^0=1
10^1=10
10^2=100
Run Code Online (Sandbox Code Playgroud)

我得到了什么

10^0=10
10^1=11
10^2=8
Run Code Online (Sandbox Code Playgroud)

实际的代码是

int value = 10 ^ exp;
Run Code Online (Sandbox Code Playgroud)

将exp替换为0,1和2 ^运算符的作用是什么?

c# math

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

为什么我的秒表会在1秒钟后继续重置

所以我有以下代码块:

var sw = new Stopwatch();
sw.Start();
while (sw.Elapsed.Seconds<10)
{
    System.Threading.Thread.Sleep(50);
    Console.WriteLine(sw.Elapsed.Milliseconds.ToString() + " ms");
}
sw.Stop();
Run Code Online (Sandbox Code Playgroud)

在我的输出中

50 ms
101 ms
151 ms
202 ms
253 ms
304 ms
355 ms
405 ms
456 ms
507 ms
558 ms
608 ms
659 ms
710 ms
761 ms
812 ms
862 ms
913 ms
964 ms
15 ms
65 ms
116 ms
167 ms
218 ms
Run Code Online (Sandbox Code Playgroud)

为什么每1000毫秒重置一次?我需要等待10秒而且我无法使用,Thread.Sleep(10000);因为这个第三方库我也使用睡眠,我需要它在那段时间做的事情.

c# stopwatch

5
推荐指数
2
解决办法
734
查看次数

Assembly.LoadFile()抛出有关缺少清单的异常

例外是:

该模块应该包含一个程序集清单.(HRESULT异常:0x80131018)

我明白这一点:

Assembly lvAssembly = Assembly.LoadFile(aPathFileName); 
Run Code Online (Sandbox Code Playgroud)

正在加载的文件是由不同应用程序生成的插件.如果我将插件的目标框架版本从4.0更改为3.5并重新编译.插件加载正常.我不明白为什么Assembly.LoadFile方法会关心插件编译的.net框架的版本.

将插件加载到4.0的应用程序更改目标框架没有帮助.

c#

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

MessageSecurityException没有为具有"http:// ..."操作的消息指定签名消息部分

这是客户端和服务器使用的配置文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <bindings>
      <wsHttpBinding>
        <binding name="WSHttpBinding_IPM_Service" closeTimeout="00:01:00"
            openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
            bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
            maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
            messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
            allowCookies="false">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
              maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <reliableSession ordered="true" inactivityTimeout="00:10:00"
              enabled="false" />
          <security mode="Message">
            <transport clientCredentialType="Windows" proxyCredentialType="None"
                realm="" />
            <message clientCredentialType="Windows" negotiateServiceCredential="true"
                algorithmSuite="Default" establishSecurityContext="true" />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://localhost:8080/PM_Service"
          binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IPM_Service"
          contract="IPM_Service" name="WSHttpBinding_IPM_Service">
        <identity>

        </identity>
      </endpoint>
    </client>
  </system.serviceModel>
</configuration>
Run Code Online (Sandbox Code Playgroud)

这是我得到错误的代码块.

            ProgrammingMaster_ServiceClient aClient = new ProgrammingMaster_ServiceClient();
            aClient.BeginProgrammingSession(0x01);
            aClient.Close();
Run Code Online (Sandbox Code Playgroud)

第二行是异常发生的地方. ProgrammingMaster_ServiceClient是使用svcutil.exe工具创建的.

这是我用来启动服务器的代码.

public bool …
Run Code Online (Sandbox Code Playgroud)

c# wcf

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

无法创建FluentNHibernate.Automapping.AutoMapping Namespace.Class [T]的实例,因为Type.ContainsGenericParameters为true

这是我得到的错误

CookBook.Tests.CategoryRepository_Fixture.Can_update_category:
FluentNHibernate.Cfg.FluentConfigurationException : An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.


  ----> FluentNHibernate.Cfg.FluentConfigurationException : An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.


  ----> System.ArgumentException : Cannot create an instance of FluentNHibernate.Automapping.AutoMapping`1[CookBook.Repository.Repository`1[T]] because Type.ContainsGenericParameters is true.
Run Code Online (Sandbox Code Playgroud)

这是我的Category对象

public class Category
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
} …
Run Code Online (Sandbox Code Playgroud)

c# fluent-nhibernate

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

这些关系是什么类型的?

我是nhibernate的新手,我很久没有处理过数据库了.

我的食谱对象:

public class Recipe
{
    public virtual Guid Id { get; set; }
    public virtual string Name { get; set; }
    public virtual IList<Category> Category { get; set; }
    public virtual int CookTime { get; set; }//in minutes
    public virtual int OvenTemp { get; set; }// in farenhieht
    public virtual IList<Ingredient> Ingredients { get; set; }
    public virtual string Instructions { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的Category对象:

public class Category
{
    public virtual Guid Id { get; set; }
    public …
Run Code Online (Sandbox Code Playgroud)

c# nhibernate

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

获取错误代码998尝试从命名管道读取时对内存位置的无效访问

我创建了一个使用WCF和C#的命名管道,以及一个连接到它的客户端,以便我知道它正常工作.现在我正在尝试创建一个c ++客户端.到目前为止,我已经能够获得管道的名称,连接到它,并向它写入一些数据.当我尝试从中读取时,我正在接受error code 998 Invalid access to memory location.这是我正在使用的代码:

HANDLE hPipe = CreateFile(pipeName.c_str(), GENERIC_WRITE | GENERIC_READ, 2, NULL, OPEN_EXISTING, NULL, NULL);
BOOL bWrite = WriteFile(hPipe, &message, size, &bytesWritten, NULL);
LPVOID buffer = 0;
DWORD bytesRead;
BOOL bRead = ReadFile(hPipe, buffer, 10, &bytesRead, NULL);
Run Code Online (Sandbox Code Playgroud)

我不确定我做错了什么.

c++ winapi named-pipes

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

为什么尖括号在我的链接中被转义?

我正在生成图像的缩略图,我想将缩略图用作链接.我有以下代码

$img = $thumbnail->show($options, $tag_options);
echo $this->Html->image("thumbs/".$img);
echo $this->Html->link($this->Html->image("thumbs/".$img),array('controller'=>'images', 'action'=>'view', $image['Image']['id']));
Run Code Online (Sandbox Code Playgroud)

第一个echo语句正常工作并显示图像.第二个显示一个看起来像这样的链接

<img src="/app/webroot/img/thumbs/fa741043357d4bf1ca39a58edf351d2a.JPG" alt="" />
Run Code Online (Sandbox Code Playgroud)

现在,链接正常工作,因为它占用了该图像的视图页面,但它没有像我期望的那样显示图像.当我查看页面源时,链接如下所示:

<a href="/index.php/images/view/9">&lt;img src=&quot;/app/webroot/img/thumbs/fa741043357d4bf1ca39a58edf351d2a.JPG&quot; alt=&quot;&quot; /&gt;</a>
Run Code Online (Sandbox Code Playgroud)

我注意到img标签上的尖括号被转义了.我究竟做错了什么?

php cakephp

0
推荐指数
1
解决办法
142
查看次数