我有两个bash脚本.一个脚本写入fifo.第二个从fifo读取,但在第一个结束后写入.
但有些东西不起作用.我不明白问题出在哪里.这里的代码.
第一个脚本是(作者):
#!/bin/bash
fifo_name="myfifo";
# Se non esiste, crea la fifo;
[ -p $fifo_name ] || mkfifo $fifo_name;
exec 3<> $fifo_name;
echo "foo" > $fifo_name;
echo "bar" > $fifo_name;
Run Code Online (Sandbox Code Playgroud)
第二个脚本是(读者):
#!/bin/bash
fifo_name="myfifo";
while true
do
if read line <$fifo_name; then
# if [[ "$line" == 'ar' ]]; then
# break
#fi
echo $line
fi
done
Run Code Online (Sandbox Code Playgroud)
有人可以帮我吗?谢谢
我必须调用 WCF 服务。WCF 服务已开启,我可以编辑其配置。
我想创建一个调用服务的客户端。我无法将服务引用添加到我的客户端,因此我尝试使用 HttpClient 调用它。
客户端代码:
using (var client = new HttpClient())
{
//soapString is my input class serialized
var content = new StringContent(soapString, Encoding.UTF8, "text/xml");
using (var postResponse = client.PostAsync("http://localhost:52937/Attempts.svc/", content).Result)
{
string postResult = postResponse.Content.ReadAsStringAsync().Result;
}
}
Run Code Online (Sandbox Code Playgroud)
服务器端代码:
[ServiceContract]
public interface IAttempts
{
[OperationContract]
void ReceiveAttemptResult(ReceiveAttemptResultInput result);
}
public class Attempts : IAttempts
{
string _backendUrl;
public void ReceiveAttemptResult(ReceiveAttemptResultInput result)
{
//...
}
}
Run Code Online (Sandbox Code Playgroud)
最后是 web.config 服务器端:
<system.serviceModel>
<services>
<service name="it.MC.Listeners.Attempts">
<endpoint address="" contract="it.MC.Listeners.IAttempts" binding="basicHttpBinding"/>
<endpoint …Run Code Online (Sandbox Code Playgroud) 我有一个带有实体框架的N层应用程序(代码优先方法).现在我想自动化一些测试.我正在使用Moq框架.我发现编写测试有些问题.也许我的架构错了?如果错误,我的意思是我编写的组件不是很好,因此它们不可测试.我真的不喜欢这个......或许,我根本无法正确使用moq框架.
我让你看看我的架构:
在每个级别,我都会context在类的构造函数中注入.
门面:
public class PublicAreaFacade : IPublicAreaFacade, IDisposable
{
private UnitOfWork _unitOfWork;
public PublicAreaFacade(IDataContext context)
{
_unitOfWork = new UnitOfWork(context);
}
}
Run Code Online (Sandbox Code Playgroud)
BLL:
public abstract class BaseManager
{
protected IDataContext Context;
public BaseManager(IDataContext context)
{
this.Context = context;
}
}
Run Code Online (Sandbox Code Playgroud)
存储库:
public class Repository<TEntity>
where TEntity : class
{
internal PublicAreaContext _context;
internal DbSet<TEntity> _dbSet;
public Repository(IDataContext context)
{
this._context = context as PublicAreaContext;
}
}
Run Code Online (Sandbox Code Playgroud)
IDataContext 是一个由我的DbContext实现的接口:
public partial class PublicAreaContext : DbContext, …Run Code Online (Sandbox Code Playgroud) 我有一个带有一些空间数据的实体...我正在程序集中使用DbGeography和DbGeometry引用System.Data.Entity...
我没有使用中引用的那个,EntityFramework.dll因为我有一个分层解决方案,并且我不想在解决方案中的任何地方引用实体框架,但只是在 DAL 内部......
当我尝试添加新的迁移时,出现以下错误:
EntityType“DbGeometry”没有定义键。定义此 EntityType 的键。
DbGeometry所以我尝试用字符串替换该属性OnModelCreating,我尝试编写以下代码:
modelBuilder.Entity<AddressInfo>()
.Property(s => s.GeometryLocation)
.HasColumnType("geometry");
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,我收到字符串数据类型与数据类型不兼容的错误DbGeometry...
有谁有解决这个问题的想法吗?DbGeometry有谁知道哪种数据类型与数据类型兼容?
谢谢
更新
EntityType 'DbGeography' has no key Defined不能解决我的问题。最后,该帖子的作者说
[他]确实必须在[他的]模型中添加对实体框架的引用
这正是我想要避免的......
瑞安还说
我认为它可以通过一个聪明的数据配置图来修复,我会使用它,并且如果我遇到任何可行的技术,我会更新
知道如何修复它吗?哪种数据类型可以替代 DbGeometry?
我在我的 wiki 页面中上传了一张图片作为附件...这里是生成到页面的代码:

Run Code Online (Sandbox Code Playgroud)
我想将这张图片居中。但是我不能。
我尝试将该 YAML 代码包装在 HTML div 中。但是就像我无法在 HTML 标签中插入 YAML 标签一样...
我还尝试添加style标签,但styleAzure devOps Wiki 页面不支持标签。
最后我尝试添加 HTMLimg标签而不是 yaml,但它无法识别上传图像的相对路径...
是否存在使图像居中的方法?
谢谢
我想自定义 Identity Server 4 的配置和操作数据上下文。
我让您查看配置存储的代码,因为代码非常相似。
这是我的定制商店:
internal class MyConfigurationDbContext : ConfigurationDbContext
{
public MyConfigurationDbContext(DbContextOptions<ConfigurationDbContext> options, ConfigurationStoreOptions storeOptions)
: base(options, storeOptions)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.HasDefaultSchema("configuration");
}
}
Run Code Online (Sandbox Code Playgroud)
这里我有第一个疑问。我认为构造函数的签名应该是
public MyConfigurationDbContext(DbContextOptions<MyConfigurationDbContext> options, ConfigurationStoreOptions storeOptions)
Run Code Online (Sandbox Code Playgroud)
但在这种情况下它无法DbContextOptions<MyConfigurationDbContext>转换DbContextOptions<ConfigurationDbContext>
好吧,在我的启动中我有这样的代码:
builder.AddConfigurationStore<MyConfigurationDbContext>(options =>
{
options.ConfigureDbContext = b => b.UseSqlServer(connectionString,
sql => sql.MigrationsAssembly(MIGRATION_ASSEMBLY));
});
Run Code Online (Sandbox Code Playgroud)
然后,我尝试生成第一次迁移:
Add-Migration InitialIdentityServerPersistedGrantDbMigration -Context MyConfigurationDbContext -OutputDir Data/Migrations/IdentityServer/PersistedGrantDb
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,我收到此错误:
Unable to resolve service for type 'Microsoft.EntityFrameworkCore.DbContextOptions`1[IdentityServer4.EntityFramework.DbContexts.ConfigurationDbContext]' while attempting to activate 'My.IdentityServer.DataLayer.Repository.Contexts.MyConfigurationDbContext'.
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
谢谢
dbcontext entity-framework-core identityserver4 entity-framework-migrations
我必须在PHP程序,由于公司需要......但我与PHP的首次工作......这是第一次,我用电报机器人的工作:"(在某种程度上,之前,当我跑的命令/start和doWork一切正常......
但现在我必须修改机器人,所有命令都隐藏在某个电报按钮后面...这里我是如何编辑我的php页面的:
if(strpos($text, "/start") === 0)
{
$response = "Ciao $firstname, benvenuto!";
$keyboard = [
'inline_keyboard' => [
[
['text' => 'forward me to groups']
]
]
];
$encodedKeyboard = json_encode($keyboard);
$parameters =
array(
'chat_id' => $chatId,
'text' => $response,
'reply_markup' => $encodedKeyboard
);
$parameters["method"] = "sendMessage";
echo json_encode($parameters);
}
Run Code Online (Sandbox Code Playgroud)
有了BotFather,我也运行了命令/setinline......
所以我想我正在研究我的parameters阵列..有人能帮助我吗?
Ps.:(如果任何人都可以建议我也是我工作的IDE请...我现在使用notepad ++)
谢谢你们
我想在 Entity Framework Core 中创建一对零或一对一的引用/父子关系。我的意思是我的实体可以有一个父级:
public class MyEntity
{
public Guid Id { get; set; }
public Guid? ParentEntityId { get; set; }
public MyEntity ParentEntity { get; set; }
public MyEntity ChildEntity { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试通过 Fluent api 配置它:
entity.HasOne(x => x.ParentEntity)
.WithOne(x => x.ChildEntity)
.HasForeignKey( .... )
Run Code Online (Sandbox Code Playgroud)
我不明白我必须在最后一行写什么。我也不确定我的实体是否正确。
有人可以帮我吗?
编辑:这个问题不能解决我的问题:实体框架中的自引用/父子关系 我的问题是关于创建外键。此行不起作用:
.HasForeignKey(x => x.ParentEntityId)
Run Code Online (Sandbox Code Playgroud)
HasForeignKey需要输入一个字符串。
我正在运行同步方法.在里面我必须运行两个大方法,所以我想以异步方式运行它们.我在想类似的东西
public void MyFunc()
{
var doWorkTask_1 = DoWork1();
var doWorkTask_2 = DoWork2();
var result1 = await doWorkTask_1;
var result2 = await doWorkTask_2;
if(result1 == result2)
....
Thread.Sleep(syncInterval);
}
Run Code Online (Sandbox Code Playgroud)
要做到这一点,我需要:
DoWork1并且DoWork2是异步的;MyFunc 也是异步的;但没有方法是异步的!
所以我尝试用另一种方式做:
public void MyFunc()
{
var doWorkTask_1 = Task.Run(() => DoWork1());
var doWorkTask_2 = Task.Run(() => DoWork2());
var result1 = doWorkTask_1.Result;
var result2 = doWorkTask_2.Result;
if(result1 == result2)
....
Thread.Sleep(syncInterval);
}
Run Code Online (Sandbox Code Playgroud)
所以,第一个问题:我是否以两种不同的方式写了同样的东西?
第二个问题.我必须MyFunc每隔X次运行一次该方法,所以我用这种方式调用它:
Task.Factory.StartNew(MyFunc);
Run Code Online (Sandbox Code Playgroud)
我可以简单地称呼它
MyFunc();
Run Code Online (Sandbox Code Playgroud)
我的问题是因为里面myFunc我有一个Thread.Sleep.我可以让主线程睡眠或者更好地让主线内的线程睡眠吗? …
我有一个MVC应用程序,正在尝试使用Hangfire和邮政发送电子邮件。该电子邮件必须在注册后发送。注册工作正常,但是我运行的作业仍然排队,并且我没有收到任何电子邮件。所以在我的MVC控制器中,我有以下代码:
public async Task<ActionResult> Register(RegisterViewModel model)
{
//register correctly the user
//I send the email
BackgroundJob.Enqueue(() =>
NotifyRegistration(user.Id, user.UserName, user.Email)
);
...
}
[AutomaticRetry(Attempts = 5)]
public async Task NotifyRegistration(string userId, string username, string email)
{
//I calculate callbackUrl
var viewsPath = Path.GetFullPath(HostingEnvironment.MapPath(@"~/Views/Emails"));
var engines = new ViewEngineCollection();
engines.Add(new FileSystemRazorViewEngine(viewsPath));
var emailService = new EmailService(engines);
var emailToSend = new NewRegisteredUserEmail
{
To = email, UserName = username, CallbackUrl = callbackUrl
};
emailService.Send(emailToSend);
}
Run Code Online (Sandbox Code Playgroud)
我无法调试NotifyRegistration方法。我不知道为什么 我正在使用邮政,所以EmailService不是我的实现。这里是我如何配置smtp服务:
<system.net>
<mailSettings>
<smtp deliveryMethod="Network">
<network …Run Code Online (Sandbox Code Playgroud) c# ×4
.net ×1
async-await ×1
asynchronous ×1
azure-devops ×1
bash ×1
dbcontext ×1
entity-framework-migrations ×1
fifo ×1
geospatial ×1
hangfire ×1
html ×1
httpclient ×1
mocking ×1
moq ×1
n-layer ×1
one-to-one ×1
php ×1
postal ×1
spatial ×1
telegram-bot ×1
unit-testing ×1
wcf ×1
writer ×1
yaml ×1