标签: wcf

SqlDataReader无法识别列序数值

我正在尝试通过WCF服务访问Silverlight应用程序的SQL数据库,由于某种原因,我的SqlDataReader对象一直给我错误.我只是试图从数据库中检索一个单一的值.

这是我现在的代码:

using(SqlConnection oConnection = new SqlConnection(ConnectionString))
{
   SqlCommand oCommand = new SqlCommand("SELECT SystemVersNo FROM dbo.CoPolicyPointer WHERE SystemAssignId = '58859700000000'");

   CompositeType oCustomer = new CompositeType();

   SqlDataReader oReader = null;
   oConnection.Open();
   oCommand.Connection = oConnection;
   oReader = oCommand.ExecuteReader();

   if (oReader.HasRows)
   {
      oCustomer.SRVNo = oReader.GetValue(0).ToString();
   }
   else
   {
      oCustomer.SRVNo = "No rows returned.";
   }

   oConnection.Close();

   return oCustomer;
}
Run Code Online (Sandbox Code Playgroud)

oReader.HasRows返回true,但oReader.GetValue(0)(或oReader.GetAnythingElse,就此而言)抛出一个错误:

System.InvalidOperationException:没有数据时读取的尝试无效.

然而,真正令我困惑的是,如果我打电话oReader.GetOrdinal("SystemVersNo"),或者oReader.GetName(0),他们都返回正确的价值观.序数位置如何以零返回,但是在该位置找不到要读取的值?如果我在SQL Server Management Studio中运行相同的查询,那么值就没问题了,所以我知道它就在那里.

我对这一切都是全新的,我错过了一些基本的东西吗?或者有什么时髦的事情发生.

谢谢!

c# silverlight wcf sqldatareader

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

如何在MVC模型中使用Webservice

我有一个非常简单的MVC模型,其中我有两个非常简单的模型类Person和Company.

我必须使用Web服务来获取有关人员和公司的数据.

您能否发布一些示例linke,其中webservice被用于GET或/和POST.

这是我的控制器索引方法.

public ActionResult Index(string id)
{
Webservice webservice = new Webservice();
}

[HttpPost]
public ActionResult Index(string id)
{
Webservice webservice = new Webservice();
}

我不知道是否在Get或Post中写上面的代码.

c# asp.net-mvc wcf web-services

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

通过HTTPS的WCF REST

我正在使用WCF,C#和.NET Framework 4.0开发REST Web服务.

我已按照本教程创建自己的证书,并使用IIS Express作为开发服务器.

但是现在,我不知道为什么,如果我使用https而不是http,我就无法访问我的网络服务.

这是IIS Express applicationhost.config:

<site name="MyGameWCFService" id="2">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="D:\Fuentes\CSharp\Test\MyLib\MyGameWCFService" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:7342:localhost" />
        <binding protocol="https" bindingInformation="*:44300:localhost" />
        <binding protocol="https" bindingInformation="*:443:Melnibone" />
    </bindings>
</site>
Run Code Online (Sandbox Code Playgroud)

这是我的WCF web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web> …
Run Code Online (Sandbox Code Playgroud)

iis rest ssl wcf iis-express

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

使用异步任务调用同步WCF服务

我有一个由服务客户端调用的WCF服务.我想使用async/await构造来包装对此的调用; 但是,服务和服务客户​​端是.NET3.5.我对此的解决方案如下:

private async Task<ObservableCollection<MyEntity>> LoadData(ParamData param)
{
        ServiceClient svc = new ServiceClient();
        int results = 0;

        // Set-up parameters
        myParams = BuildParams(param);

        // Call a count function to see how much data we're talking about
        // This call should be relatively quick
        var counter = Task.Factory.StartNew(() =>
        {
            results = svc.GetResultCount(myParams);
        }).ContinueWith((task) =>
        {
            if (results <= 10000 ||
                (MessageBox.Show("More than 10000 results, still retrieve data?"), MessageBoxButton.YesNo) == MessageBoxResult .Yes))
            {
                return svc.Search(myParams);
            }
        });
}
Run Code Online (Sandbox Code Playgroud)

我收到编译错误:

Since 'System.Action<System.Threading.Tasks.Task>' …
Run Code Online (Sandbox Code Playgroud)

c# wcf asynchronous async-await .net-4.5

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

Fiddler没有捕获WCF流量但捕获ASMX很好

我一直在使用Fiddler为一些调用其他ASMX服务的ASMX服务捕获流量.在这种情况下,我有一个简单的WCF服务调用那些ASMX服务.它不会捕获任何流量.唯一的缺点是它使用IIS而不是IISExpress (http://localhost/Interface12Service/Interface12Service.svc).如何捕获WCF流量?

wcf fiddler

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

使用带有Entity Framework 6+的WCF Data Services 5.6.0

我一直在努力让我们的WCF数据服务与新的Entity Framework 6一起使用.

我发现这篇文章解释了解决这个问题的简单而轻松的方法.

我按照发布的指示完全按照.我第一次安装时:

Install-Package Microsoft.OData.EntityFrameworkProvider -Version 1.0.0-alpha1 -Pre
Run Code Online (Sandbox Code Playgroud)

我收到错误:

错误16"Microsoft.OData.Service.DataService`1"类型在未引用的程序集中定义.您必须添加对程序集"Microsoft.OData.Service,Version = 5.6.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35"的引用.C:\ Realtime Source\RTR 6.x\RTRServices\RTRWCFDataService\RTRWCFDataService\RTRWCFData.svc.cs 21 16 RTRWCFDataService

在研究似乎解决方案是升级到alpha 2 ...并执行此操作时使用命令:

Install-Package Microsoft.OData.EntityFrameworkProvider -Pre 
Run Code Online (Sandbox Code Playgroud)

当我使用此命令时,程序包管理器控制台会发出两个错误:

使用"8"参数调用"CreateInstanceFrom"的异常:"无法从程序集'E ntityFramework.PowerShell加载类型'System.Data.Entity.ConnectionFactoryConfig.InitializeEntityFrameworkCommand',Version = 5.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089' ." 在C:\ Realtime Source\RTR 6.x\RTRServices\RTRWCFDataService\packages\EntityFramework.6.0.1\tools\EntityFramework.psm1:698 char:31 + $ domain.CreateInstanceFrom <<<<(+ CategoryInfo:NotSpecified :( :) [],MethodInvocationException + FullyQualifiedErrorId:DotNetMethodException使用"8"参数调用"CreateInstanceFrom"的异常:"无法从程序集'EntityFramework .PowerShell,Version = 5.0加载类型'System.Data.Entity.ConnectionFactoryConfig.AddProviderCommand' .0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'."在C:\ Realtime Source\RTR 6.x\RTRServices\RTRWCFDataService\packages\EntityFramework.6.0.1\tools\EntityFramework.psm1:698 char:31 + $ domain .CreateInstanceFrom <<<<(+ CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:DotNetMethodException

然后我失去了访问Microsoft.OData …

.net wcf odata entity-framework-6

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

REST URI优于查询字符串格式的URI的优点?

所有,

对于我们从.NET开始的新项目,我们想要运行纯REST.因此,我们选择.NET Web API作为.NET Framework 4.5(而不是WCF)的一部分发布,并考虑到它支持纯REST特性.但是,当我们根据我们的要求进行更多探索时,我们意识到它没有提供类似URL格式的REST的URI模板支持.我们仍然可以,因为我们对具有查询字符串格式的WebAPI感觉不太好.

当我们聘请一个新团队时,他们开始强制执行他们需要REST类型的URL格式,因为它是标准规范和喜欢.

当被问及执法时,他们刚刚提到它是一个标准,我们必须坚持它,这并不能说服我.

所以,我有兴趣知道REST架构提供了什么?还有querystring格式的URI不符合REST方法吗?

REST URI:http://myapplicationdomain.com/apps/appId

查询字符串URI:http://myapplicationdomain.com/GetAps/appId= {appId}

提前致谢.

c# asp.net rest wcf asp.net-web-api

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

当客户端请求列表时,WCF服务应该返回什么?

简单的问题,多种可能性:

  • ICollection<T>
  • IEnumerable<T>
  • List<T>
  • IList<T>
  • Array

相互之间有什么优缺点?是否存在性能/安全问题?

c# wcf

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

将字符串转换为枚举

在此输入图像描述

我正在处理WCF服务,并希望将首选项键作为枚举而不是字符串返回.

如何以最佳方式制作字符串类型的preferencekey列的枚举?

c# wcf enums

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

这个WPF绑定有什么问题

这个WPF绑定有什么问题

<TextBox Name="TagNumberTextBox" Style="{StaticResource TextBoxStyle}" 
Width="200" CharacterCasing="Upper" Text="{Binding Tags, Path=[0]}"/>
Run Code Online (Sandbox Code Playgroud)

我收到了错误 Text="{Binding Tags, Path=[0]}"

"路径"属性设置不止一次.

但是我期待这个问题可能是因为WCF服务绑定.我的WCF服务未被调用.

WPF Screen有一个DataContext,其中一个属性Tags是Observable集合.我试图将它绑定到该集合的第一个元素.

c# wpf wcf

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