我有两个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
标签,但style
Azure 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