每次我尝试使用new Async和Await运算符并从数据库返回一组对象时,我都会遇到Invalid Operation异常.当我使用它只返回一个项目时它工作正常.
控制器代码:
public async Task<ActionResult> EnvironmentList()
{
EfEnvironmentDataAccess dataAccess = new EfEnvironmentDataAccess();
ICollection<Environment> environments = await dataAccess.GetAllEnvironmentsAsync();
return PartialView(environments);
}
Run Code Online (Sandbox Code Playgroud)
查看代码:
<div class="ECURightCol">
<h3>Table Dumps</h3>
@Html.Action("EnvironmentList", "Environment")
@Html.Action("ComputerList", "Computer")
@Html.Action("ProductList", "Product")
@Html.Action("InstanceList", "Instance")
@Html.Action("ProfileList", "Profile")
Run Code Online (Sandbox Code Playgroud)
数据访问代码:
public ICollection<Environment> GetAllEnvironments()
{
using (EcuWebDataContext db = new EcuWebDataContext())
{
return db.Environments.OrderBy(e => e.Name).ToList();
}
}
public async Task<ICollection<Environment>> GetAllEnvironmentsAsync()
{
return await Task.Run(() => GetAllEnvironments());
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.InvalidOperationException:HttpServerUtility.Execute在等待异步操作完成时被阻止.
我是F#的新手,试图用F#重写我们的一个应用程序,试图在整个过程中学习它,我在列表清单时遇到了一些麻烦.我搜索并找到了几个答案,但我似乎无法让它们中的任何一个起作用.
我的数据类型是说它是val regEntries:RegistryKey列表
我希望它只是一个列表.
以下是我的代码:
namespace DataModule
module RegistryModule =
open Microsoft.Win32
let regEntries =
["SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"; "SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"]
|> List.map (fun x -> Microsoft.Win32.Registry.LocalMachine.OpenSubKey(x))
|> List.map(fun k -> List.ofArray(k.GetSubKeyNames()) |> List.map (fun x -> k.OpenSubKey(x)) |> List.filter (fun x -> x.GetValue("ProductId") <> null))
Run Code Online (Sandbox Code Playgroud) 我有一个静态依赖属性,我需要知道它的值何时更改,以便我可以调用回调并更新其他值.现在我不能这样做,因为回调不是静态的,而且依赖关系改变事件是.
当LostFocus事件触发时,我现在正在使用它,但是我希望每当发生更改时都将它连接起来.
我对Scala和Slick都很陌生,在尝试学习它时,我正在编写一个适用于简单数据库的小应用程序.
我以前的大部分经验都来自.Net和实体框架,所以我想知道是否在Entity Framework中使用ComplexType属性,如果Slick允许我这样做.
基本上我的一个表是1-1关系,对于其中一些我更喜欢创建一个对象并将其用作复杂类型.显然在数据库中,这只是表上的额外列,但我想知道Slick是否可以将这些列映射到我的Table类中的对象.见下面的例子.
我将使用博客条目示例.
扩展Table的主要类是BlogEntry它包含条目的文本.然后说我想在那个类中另一个叫做EntryDetails包含发布条目的时间和上次更新时间的类.
在数据库中,所有这些字段都在同一个表中,但在读入时,它将是一个包含另一个对象的对象.Slick有可能吗?
我们将Java GRPC用于内部服务之一,并且有一个服务器端拦截器,可用于从标头中获取信息,并将其设置在内部使用ThreadLocal的日志记录上下文中。
因此,在拦截器中,我们执行以下操作:
LogMessageBuilder.setServiceName("some-service");
final String someHeaderWeWant = headers.get(HEADER_KEY);
final LoggerContext.Builder loggingContextBuilder = new LoggerContext.Builder()
.someFieldFromHeaders(someHeaderWeWant);
LoggerContext.setContext(loggingContextBuilder.build());
Run Code Online (Sandbox Code Playgroud)
然后,在我们的服务电话中,我们将像这样访问它:
LoggingContext loggingContext = LoggingContext.getCurrent()
Run Code Online (Sandbox Code Playgroud)
但是,当前上下文有时会为空。
然后,我们尝试使用GRPC Context类,如下所示:
LogMessageBuilder.setServiceName("some-service");
final String someHeaderWeWant = headers.get(HEADER_KEY);
final LoggerContext.Builder loggingContextBuilder = new LoggerContext.Builder()
.someFieldFromHeaders(someHeaderWeWant);
Context.current().withValue(LOGGING_CONTEXT_KEY, loggingContextBuilder.build()).attach()
Run Code Online (Sandbox Code Playgroud)
然后像在服务调用中那样访问它:
LoggingContext context = LOGGING_CONTEXT_KEY.get(Context.current())
Run Code Online (Sandbox Code Playgroud)
但是有时也为空,并且如果我打印出内存地址,则无论我是否附加在拦截器中,上下文的早期似乎始终是ROOT上下文,但是在几次调用之后,上下文是正确的,并且记录器数据在那里这应该。
因此,如果有人有任何想法或更好的方法将数据从拦截器传播到服务调用,我将很乐意听到它。
在我的c#应用程序中,我有一个自定义配置部分来确定存储和检索某些文件的位置.但是这些的默认位置是在c:\ ProgramData目录中,我们使用它来访问它
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
Run Code Online (Sandbox Code Playgroud)
如何在配置文件中预填充该目录而不必写出原始字符串?在某些情况下,它也可能是一个不同的特殊文件夹.
基本上它是一个配置元素,如下所示:
<searchpath path="" priority="" isfullpath=""/>
Run Code Online (Sandbox Code Playgroud)
其中每一个都是搜索产品配置文件的路径,但是在不同版本的过程中,该目录已被移动,但为了向后兼容,我仍然需要搜索较旧的路径,如果我在其中找不到它们较新的路径.
例如,我现在必须在产品安装目录中搜索ProgramData目录,因为我们最新版本将其移动到当前产品安装目录中,但我们的旧版本将其存储在ProgramData目录中.
您好我的主厨要使用我的data_bag中的ssh密钥来检查我的git repo.
以下是我的git资源:
repo_key = search(:git, "id:git_key").first
git_key_file = "#{Chef::Config['file_cache_path']}/git_key/id_rsa"
directory "#{Chef::Config['file_cache_path']}/git_key" do
action :create
end
file git_key_file do
content repo_key['deploy_key']
mode "0755"
action :create_if_missing
end
git "/usr/share/my_repo" do
repository "git@github.com:my_name/some_repo.git"
checkout_branch "#{node["my_app"][:test_branch]}"
action :sync
ssh_wrapper "ssh -i #{git_key_file}"
end
Run Code Online (Sandbox Code Playgroud)
当我跑:sudo chef-client我得到以下错误:
STDERR: error: cannot run ssh -i /var/chef/cache/git_key/id_rsa: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我已经进入服务器,我可以验证密钥文件是否在适当的位置并包含密钥.
我需要帮助使用 Microsoft.Web.Administration.ServerManager 类为网站设置端口。
首先我得到网站:
Site site = this._serverManager.Sites[section.WebsiteName];
Run Code Online (Sandbox Code Playgroud)
然后我尝试从我传入的设置中设置端口:
foreach (Binding b in from binding in site.Bindings.Where(b => b != null && b.EndPoint != null)
select binding)
{
b.EndPoint.Port = Int32.Parse(section.Port);
Console.WriteLine(b.EndPoint.Port);
} this._serverManager.CommitChanges();
Run Code Online (Sandbox Code Playgroud)
我把写行放在那里检查,端口永远不会改变,为什么?我已经知道该网站是有效的,因为我在到达这里之前检查过。
Binding binding = site.Bindings.CreateElement();
binding.BindingInformation = String.Format("{2}:{0}:{1}", section.Port,b.Host, b.EndPoint.Address);
//b.EndPoint.Port = Int32.Parse(section.Port);
site.Bindings.Add(binding);
Run Code Online (Sandbox Code Playgroud)
我在上面尝试过,我得到了一个关于 GetAttributeValue 的 COMException。
由于下面的答案我不得不做,终于得到了它:
b.BindingInformation = String.Format("{2}:{0}:{1}", section.Port, b.Host, b.EndPoint.Address);
Run Code Online (Sandbox Code Playgroud) 您好我在MS Access 2013中的表单中有一些vba代码,出于某种原因,当我得到一个记录集时,它报告30行,当数据库真的只有1行并且我已经验证了这一点.
当我进行调试打印以查看id时,它只是重复30次的相同记录.
下面是运行的代码.
Option Compare Database
Dim selectPlacement As QueryDef
Dim rs As Recordset
Private Sub Form_Current()
Set selectPlacement = CurrentDb.QueryDefs("SelectPlacement")
Me.AddPlacementForm.Form.Visible = False
selectPlacement.Parameters!stu = Me.student_id.Value
selectPlacement.Parameters!sem = Me.semester_id.Value
Me.AddPlacementForm.Form!lstStudent.Value = Me.student_id
Me.AddPlacementForm.Form!cmbSemester.Value = Me.semester_id
Me.PlacementsBlock1.Form.Filter = "[semester_id]= '" & Me.semester_id.Value & "'"
Me.PlacementsBlock2.Form.Filter = "[semester_id]= '" & Me.semester_id.Value & "'"
Me.PlacementsBlock1.Form.FilterOn = True
Me.PlacementsBlock2.Form.FilterOn = True
Set rs = selectPlacement.OpenRecordset
Call SetUpPlacements(rs)
rs.Close
Set selectPlacement = Nothing
End Sub
Private Sub SetUpPlacements(rs As Recordset)
If rs.RecordCount …Run Code Online (Sandbox Code Playgroud) c# ×4
.net ×2
access-vba ×1
asp.net-mvc ×1
async-await ×1
chef-infra ×1
f# ×1
git ×1
grpc ×1
iis-7 ×1
java ×1
ms-access ×1
scala ×1
slick ×1
ssh ×1
vba ×1
wpf ×1