我没有使用IIS,甚至没有安装在这台计算机上.我的控制台托管的WCF REST服务中也没有任何app.config文件或web.config文件.但我想尝试在主机控制台应用程序上运行HTTPS:
class Program
{
static void Main(string[] args)
{
string baseAddress = "http://" + Environment.MachineName + ":8000/Service";
ServiceHost host = new ServiceHost(typeof(Service), new Uri(baseAddress));
//WebHttpBinding binding = new WebHttpBinding();
//binding.Security.Mode = WebHttpSecurityMode.Transport;
host.AddServiceEndpoint(typeof(IService), new WebHttpBinding(), "").Behaviors.Add(new WebHttpBehavior());
host.Open();
Console.WriteLine("Host opened");
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
有没有办法让我的服务在HTTPS中运行?
我们有一个Web服务(asmx),它接受一个字节数组缓冲区并将其流式传输到外部文件服务以进行存储和存档.它由Windows服务调用,生成相当小的文件(3-5M),因此创建一个大小的字节数组并将其作为Web服务调用的参数提供,直到现在都运行良好.
我的任务是将新作业添加到文件队列中,该队列可能会生成大于70M的文件.显然byte[],这个大小将压倒系统内存,所以我一直在寻求解决方案.Web服务有一个内部方法,它将a FileStream作为参数而不是a byte[],因此我尝试将FileStream方法表示为WebMethod.我已经更新的Windows服务的引用,但奇怪的事情发生了:通过FileStream参数有一个命名空间的连接符(像CallingWindowsService.ExternalWebServiceFileManager.FileStream),这指定的对象不带任何文件名作为构造,所以我无法打开特定文件.
我完全在海上如何处理这个问题.有没有其他人这样做 - 将大量数据流式传输到 Web服务 - 如果是这样,最好的方法是什么?我的网络服务需要一个byte[]或FileStream.
看一下其他一些消息,看起来MTOM(不熟悉它)可能是一个解决方案,但我不确定如何在我的网络方法中设置它或让它工作.
我有一个wpf人员创建窗口,我可以在其中创建基本信息,如名字,姓氏等,这将在我的REST Web服务中创建工作人员.一个例子:
客户端:
private void CreateStaffMember_Click(object sender, RoutedEventArgs e)
{
string uri = "http://localhost:8001/Service/Staff";
StringBuilder sb = new StringBuilder();
sb.Append("<Staff>");
sb.AppendLine("<FirstName>" + this.textBox1.Text + "</FirstName>");
sb.AppendLine("<LastName>" + this.textBox2.Text + "</LastName>");
sb.AppendLine("<Password>" + this.passwordBox1.Password + "</Password>");
sb.AppendLine("</Staff>");
string NewStudent = sb.ToString();
byte[] arr = Encoding.UTF8.GetBytes(NewStudent);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);
req.Method = "POST";
req.ContentType = "application/xml";
req.ContentLength = arr.Length;
Stream reqStrm = req.GetRequestStream();
reqStrm.Write(arr, 0, arr.Length);
reqStrm.Close();
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
MessageBox.Show("Staff Creation: Status " + resp.StatusDescription);
reqStrm.Close();
resp.Close();
}
Run Code Online (Sandbox Code Playgroud)
Web服务方面:
#region …Run Code Online (Sandbox Code Playgroud) 我试图检查字符串是否包含数字值,如果它没有返回标签,如果它然后我想显示主窗口.如何才能做到这一点?
If (mystring = a numeric value)
//do this:
var newWindow = new MainWindow();
newWindow.Show();
If (mystring = non numeric)
//display mystring in a label
label1.Text = mystring;
else return error to message box
Run Code Online (Sandbox Code Playgroud) 我有一个500x1的单元格aray,每行都有一个单词.如何计算出现的单词出现次数并显示出来并显示每次出现的百分比.
例如
这些词的出现是:
Ans =
200 Green
200 Red
100 Blue
Run Code Online (Sandbox Code Playgroud)
这些词的百分比:
Ans =
40% Green
40% Red
20% Blue
Run Code Online (Sandbox Code Playgroud) 我得到了与前一个问题相关的帮助,但后来被告知要问一个与之相关的新问题但是给出的代码我遇到了一个错误:
public void AddPersonToCommunity(string person, string communityName)
{
var result = communities.Where(n => String.Equals(n.CommunityName, communityName)).FirstOrDefault();
if (result != null)
{
result.Add(new Person() { PersonName = person }); //no definition for add?
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看上一个问题以获取更多具体信息:休息时的关系?
如果我做的var result = communities;结果将有添加的定义所以我不知道发生了什么?
因此,我将扩展器的方向更改为垂直而不是水平对齐,但是在关闭状态下,扩展器标题文本是水平对齐。请告诉我,有一种方法可以轻松解决此问题,而无需表情融合等。
<Expander Header="My Header">
Run Code Online (Sandbox Code Playgroud)
我原本希望有类似AlignHeaderText垂直的东西,但我看不到其他选择吗?有谁能以其他方式“展示”我吗?
因此,从指导HB那里获取,我想出了这一点:
<StackPanel Orientation="Horizontal" Margin="0,0,342,0" Width="318">
<StackPanel.Triggers>
<EventTrigger RoutedEvent="Expander.Expanded" SourceName="expander1">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation From="0" To="1.2" Duration="0:0:0.45" Storyboard.TargetName="content" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleX)"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</StackPanel.Triggers>
<Expander ExpandDirection="Right" Name="expander1" OpacityMask="#6C806969" Background="#FF807171">
<Expander.LayoutTransform>
<RotateTransform Angle="90"></RotateTransform>
</Expander.LayoutTransform>
<Expander.Header>
<TextBlock
Text="HEADER"
Width="{Binding
RelativeSource={RelativeSource
Mode=FindAncestor,
AncestorType={x:Type Expander}},
Path=ActualWidth}"
/>
</Expander.Header>
<Grid x:Name="content" Background="#FF807171" Width="178">
<Grid.LayoutTransform>
<ScaleTransform ScaleX="0" ScaleY="1"/>
</Grid.LayoutTransform>
</Grid>
</Expander>
Run Code Online (Sandbox Code Playgroud)
不幸的是,它对扩展器这样做:

它将文本放在顶部,按钮放在中间,我希望按钮在顶部,按钮后面是文本?
如果我更改Path=ActualWidth为Height按钮,该按钮会向上移动,但标题文本仍位于按钮的左侧而不是其下方?
嗯我好像有问题,在我的主窗口我试图这样做:
public static readonly DependencyProperty StudentIDProperty = DependencyProperty.Register("StudentID", typeof(String), typeof(LoginWindow), new PropertyMetadata(OnStudentIDChanged));
public string StudentID
{
get { return (string)GetValue(StudentIDProperty); }
set { SetValue(StudentIDProperty, value); }
}
static void OnStudentIDChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
(d as LoginWindow).OnStudentIDChanged(e); //
}
Run Code Online (Sandbox Code Playgroud)
在我的另一个窗口,我有这个:
MainWindow.StudentID = (String)((Button)sender).Tag;
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
An object reference is required for the non-static field, method, or property 'WpfApplication4.MainWindow.StudentID.get'
Run Code Online (Sandbox Code Playgroud)
有谁知道我怎么解决这个问题?它适用于我的用户控件,但不适用于其他窗口?
我的主窗口实际上名为MainWindow,所以我可能有这个困惑.
如果我尝试:
List<Student> students = new List<Student>();
List<Group> Groups = new List<Group>();
Groups = students.Remove(f => f.StudentID.Equals(studentID));
Run Code Online (Sandbox Code Playgroud)
我在这一行收到错误: f => f.StudentID.Equals(studentID)
我在以前的帖子中遇到了困难/sf/ask/708167981/这里在WCF中删除方法
所以我想也许我可以删除组中包含的学生,但是我收到错误无法将lambda表达式转换为类型Student,因为它不是委托类型.
只是快速了解我想要做什么,让我们说学生A可以属于多个组.然后,如果我删除该学生,学生不应再列出任何组.但确实如此.但是,如果我搜索,可以说群计算学生不在那里.只是当我带着学生并搜索他所属的组(即使他被删除)时,它才会返回我最初添加他的组.这个应该发生的事情
增值税号码不是随机或顺序生成的,而是基于可以检查以查看该号码是否有效的公式.如果增值税号无效,则企业无法重新申请增值税.
要手动验证英国增值税号,您可以执行以下练习:
排除前两个字母,垂直列出数字,并将每个数字乘以一个以8开头并以2结尾的值.然后将所有总和相加,并从总和中扣除97,直到答案为负数.负数应等于增值税号的最后2位数.
因此,例如,增值税号为BLABLAGB 815382334的计算方法是:
8 x 8 = 64
1 x 7 = 7
5 x 6 = 30
3 x 5 = 15
8 x 4 = 32
2 x 3 = 6
3 x 2 = 6
Run Code Online (Sandbox Code Playgroud)
上述计算的总和是64 + 7 + 30 + 15 + 32 + 6 + 6 = 160
从此扣除97,直到结果为负,结果160 – 97 - 97= -34与最后两位数相同:因此增值税号有效.
我想编写一个C#应用程序,它将英国增值税号作为输入,使用上面的公式计算校验和,并指出该数字是有效还是无效.
这对我来说是算法练习.我在网上找到了vat checkers,但是我不明白它们是如何工作的,所以我希望有人可以通过很好的解释给出上述问题的一些简单答案?
更新:
public static bool isValidVATNumber(string theVATNumber)
{
string startChar = …Run Code Online (Sandbox Code Playgroud) 获取问题我只知道如何使用DateTime来显示我的结果:
{
string uri = "http://localhost:8002/Service/HireDate";
XDocument xDoc = XDocument.Load(uri);
var staff = xDoc.Descendants("HireDate")
.Select(n => new
{
StartDate = DateTime.Parse(n.Element("HireFromDate").Value), //this line
EndDate = DateTime.Parse(n.Element("HireToDate").Value), //this line
TotalDaysHired = n.Element("NumberOfDaysHired").Value,
})
.ToList();
dataGrid9.ItemsSource = staff;
}
Run Code Online (Sandbox Code Playgroud)
但是这在我的datagrid中输出如下:
15/07/2012 00:00:00
27/07/2012 00:00:00
Run Code Online (Sandbox Code Playgroud)
有没有办法删除我想要约会的时间?
我有一个用户输入9个数字的文本框.我想把这个数字的最后两位数字与myInt进行比较:
int myInt = 34;
int numberToCompare = Convert.ToInt32(textBox1.Text);
if (numberToCompare == myInt)
{
MessageBox.Show("Vat number correct");
}
Run Code Online (Sandbox Code Playgroud)
如果文本框输入等于说:876545434如何切出剩余数字:8765454(34)我可以将其与myInt进行比较?文本框号码将始终保持9位数!
更新:
我使用这种方法管理它:
int myInt = 34;
int numberToCompare = Convert.ToInt32(textBox1.Text.Substring(7,2));
if (numberToCompare == myInt)
{
MessageBox.Show("Vat number correct");
}
else
{
MessageBox.Show("Vat number incorrect");
}
Run Code Online (Sandbox Code Playgroud)
但我想知道为什么这是一个糟糕的方法?