我正在尝试通过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中运行相同的查询,那么值就没问题了,所以我知道它就在那里.
我对这一切都是全新的,我错过了一些基本的东西吗?或者有什么时髦的事情发生.
谢谢!
我有一个非常简单的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中写上面的代码.
我正在使用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) 我有一个由服务客户端调用的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) 我一直在使用Fiddler为一些调用其他ASMX服务的ASMX服务捕获流量.在这种情况下,我有一个简单的WCF服务调用那些ASMX服务.它不会捕获任何流量.唯一的缺点是它使用IIS而不是IISExpress (http://localhost/Interface12Service/Interface12Service.svc).如何捕获WCF流量?
我一直在努力让我们的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开始的新项目,我们想要运行纯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}
提前致谢.
简单的问题,多种可能性:
ICollection<T>IEnumerable<T>List<T>IList<T>Array相互之间有什么优缺点?是否存在性能/安全问题?

我正在处理WCF服务,并希望将首选项键作为枚举而不是字符串返回.
如何以最佳方式制作字符串类型的preferencekey列的枚举?
这个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集合.我试图将它绑定到该集合的第一个元素.
wcf ×10
c# ×7
rest ×2
.net ×1
.net-4.5 ×1
asp.net ×1
asp.net-mvc ×1
async-await ×1
asynchronous ×1
enums ×1
fiddler ×1
iis ×1
iis-express ×1
odata ×1
silverlight ×1
ssl ×1
web-services ×1
wpf ×1