小编Jus*_*ard的帖子

使用提升的权限进行调试时,Marshal.GetActiveObject("Outlook.Application")会抛出MK_E_UNAVAILABLE

当Visual Studio未作为管理员启动时,此代码在版本r调试中运行没有问题.

Marshal.GetActiveObject("Outlook.Application");
Run Code Online (Sandbox Code Playgroud)

但是,当我以管理员身份启动Vs并在调试中运行相同的行时,我收到以下错误:

System.Runtime.InteropServices.COMException
Operation unavailable (Exception from HRESULT: 0x800401E3 (MK_E_UNAVAILABLE))
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题.

.net c# com-interop elevated-privileges visual-studio-2013

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

System.Speech.Synthesis的事件信息中的流编号在哪里?

可以让SpeechSynthesizer以异步方式讲文本,例如:

Private WithEvents _Synth As New SpeechSynthesizer

Private Sub TextBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyUp
    If e.KeyCode = Keys.Enter Then
        _Synth.SpeakAsync(New Prompt(Me.TextBox1.Text))
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

SpeechSynthesizer产生的事件使我们能够分辨出计算机语音在说什么。

例如,您可以通过选择以下字符来可视化语音输出:

Private Sub _Synth_SpeakProgress(sender As Object, e As SpeakProgressEventArgs) Handles _Synth.SpeakProgress

    Me.TextBox1.SelectionStart = e.CharacterPosition
    Me.TextBox1.SelectionLength = e.CharacterCount

End Sub
Run Code Online (Sandbox Code Playgroud)

但是,当SpeakAsync反复被调用时(例如,当我们告诉SpeechSyntesizer他们当前正在讲话时说相同的文本时),语音请求会排队,然后SpeechSynthesizer一一播放。

但是,我无法找出合成器当前正在发出哪个请求。在SpeakProgressEventArgs不透露这个

使用SAPI5,事件提供了StreamNumber

Parameters
StreamNumber
    The stream number which generated the event. When a voice enqueues more than one …
Run Code Online (Sandbox Code Playgroud)

.net vb.net speech-synthesis speechsynthesizer

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

在 docker 容器中连接到 SQL Server 时出错

我有一个在 Windows Docker 容器内运行的 ASP.NET Core WebAPI。我在从应用程序内部连接到本地 SQL 实例时遇到问题。

这是错误消息:

(0x80131904):建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40 - 无法打开与 SQL Server 的连接)---> System.ComponentModel.Win32Exception (53): 找不到网络路径

在 github 上发现了这个问题,但它并不真正适用于我的情况。

我可以通过用服务器本地 IP 地址替换实例名称来使一切正常,如下所示:

"ConnectionString_ThrowingError": "Data Source=MySqlInstance; (...)"
"ConnectionString_WorkingFine":   "Data Source=192.168.0.123; (...)"
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?.NET 似乎无法解析域机器主机名。


其他详情

  • 使用 .Net Core 2.2
  • 在 Windows 上使用 Docker Windows 容器
  • 尝试在Windows 10和上托管Windows Server 2019。两者都有完全相同的错误。
  • 我可以ping使用其主机名或本地 IP 从容器内部获取 SQL 实例。
  • 当我用连接字符串中的本地 IP 地址替换实例名称时,一切正常。
  • 如果我在 .NET CLI 中运行应用程序,一切正常(不使用 Docker)
  • 我尝试访问的 …

c# docker .net-core asp.net-core docker-for-windows

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

如何自定义 Swagger 端点 url?

我有多个 web api 项目(微服务),我想只使用一个swagger-ui链接来公开它们。为了这篇文章,我将每个 web api 项目称为EndpointAEndpointB

我创建了一个swagger-ui项目,并将每个端点添加到这个项目中。

我的swagger-ui项目Startup.cs

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseSwaggerUI(c => {
        c.SwaggerEndpoint("/EndpointA/swagger/v1/swagger.json", "EndpointA");
        c.SwaggerEndpoint("/EndpointB/swagger/v1/swagger.json", "EndpointB");
    });
}
Run Code Online (Sandbox Code Playgroud)

我的端点 A/B Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new Info
        {
            Version = "v1",
            Title = "EndpointA", // or "EndpointB",
        });
    });
}
Run Code Online (Sandbox Code Playgroud)

我的问题是每个swagger.json文件都不包含端点前缀。而不是/EndpointA/Controller/Action,路径是/Controller/Action,这是无效的。


我试图在我的 swagger ui 项目中设置自定义 url 前缀,如下所示c.RoutePrefix = "EndpointA";。它适用于我的 …

c# swagger swagger-ui swashbuckle asp.net-core

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

跨 Azure SQL 和本地 sql 服务器的分布式事务导致错误

是否可以在本地 SQL Server 实例和 Azure SQL 数据库之间进行事务。

我有以下测试用例。

public class TransactionsTest
{
    [Fact]
    public void Test1()
    {
        var premisesDatabaseContext = new OnPremisesDatabaseContext();
        var azureSQLDatabaseContext = new AzureSQLDatabaseContext();

        using (TransactionScope scope = new TransactionScope())
        {
            premisesDatabaseContext.Database.Connection.Open();
            azureSQLDatabaseContext.Database.Connection.Open();

            scope.Complete();
        }
    }

    [Fact]
    public void Test2()
    {
        var premisesDatabaseContext = new OnPremisesDatabaseContext();
        var azureSQLDatabaseContext = new AzureSQLDatabaseContext();

        using (TransactionScope scope = new TransactionScope())
        {
            azureSQLDatabaseContext.Database.Connection.Open();
            premisesDatabaseContext.Database.Connection.Open();

            scope.Complete();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这看起来很简单。但是当我打开第二个连接时,两个测试用例都失败并出现不同的错误。

这是错误的详细信息。

// TEST 1
System.Reflection.TargetInvocationException: 
Exception has been thrown by the target …
Run Code Online (Sandbox Code Playgroud)

sql-server msdtc transactionscope azure-sql-database

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

使用和等待使用有什么区别?我该如何决定使用哪一个呢?

我注意到在某些情况下,Visual Studio建议这样做

await using var disposable = new Disposable();
// Do something
Run Code Online (Sandbox Code Playgroud)

代替这个

using var disposable = new Disposable();
// Do something
Run Code Online (Sandbox Code Playgroud)

using和之间有什么区别await using

我应该如何决定使用哪个?

c# c#-8.0

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

无法连接到 sql server:SQL server 实例失败。(系统.数据)

当我尝试连接到 Sql Server 时收到此错误消息

===================================

Cannot connect to **SQL_ServerName**.

===================================

Instance failure. (System.Data)

------------------------------
Program Location:

   at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover, Boolean isFirstTransparentAttempt, SqlAuthenticationMethod authType, Boolean disableTnir)

   ...
Run Code Online (Sandbox Code Playgroud)

sql sql-server ssms

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

如何在代码隐藏中检索具有外部 ID 的记录

如何使用其外部 ID 在数据库中查找记录?

假设我的数据文件中有以下记录:

<record model="product.product" id="product_to_find"> ... </record>
Run Code Online (Sandbox Code Playgroud)

如何在代码隐藏中检索它?

python openerp odoo odoo-8

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