powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / веб приложение Silverlight 4 доступ по сети
13 сообщений из 13, страница 1 из 1
веб приложение Silverlight 4 доступ по сети
    #37411085
Che0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть веб приложение Silverlight 4. созданно по инструкции что внизу. картинки не вставились но думаю ничего страшного.
Приложение открывается только с компа на котором была создана только под пользователем под которым было создана(админ).Как разпешить доступ к нему по сети и из других учетных записей?

Создание графика в Silverlight на основании данных из БД SQL

Создаем приложение Silverlight 4 в Visual Studio 2010:


Ставим настройки приложения Silverlight как на картинке:



Появится приложение, включающее в себя два проекта: проект страницы asp.net, на которой будет размещаться график Silverlight и сам проект приложения Silverlight:

Добавляем в проект сайта LINQ to SQL classes(нужен для получения данных из баз данных):

Откроется окно дизайнера, в котором можно добавить таблицы для использования их потом в нашем проекте Silverlight:

Создаем подключение к базе данных SQL:




Для того, чтобы приложение Silverlight могло получить данные из sql добавляем в проекте сайта службу, которая и будет передавать эти данные в Silverlight (Silverlight-enabled WCF service):

Заменяем код внутри класса Service на код, выводящий нужные нам данные из БД SQL:
[OperationContract]
List<D_Scenario> GetAllMG()
{
DataClassesDataContext context = new DataClassesDataContext();
var result = (from c in context.D_Scenario

select c).Take(5).ToList();
return result;
}
В данном случае из таблицы D_Scenario выводятся 5 первых записей.
Добавляем в проект сайта ссылку на библиотеку System.Data.Services.Client.
Далее в приложении Silverlight создаем ссылку на службу, которую мы создали в проекте сайта:



Добавляем в Silverlight проект ссылку на библиотеку: System.Windows.Controls.DataVisualization.Toolkit (нужна для построения графика).
Создаем в Silverlight проекте библиотеку DifficultyLevel.cs.
Копируем туда код:
using System;

namespace System.Windows.Controls.Samples
{
/// <summary>
/// Describes the level of difficulty of the sample.
/// </summary>
public enum DifficultyLevel
{
/// <summary>
/// Used when Sample does not need to be categorized.
/// </summary>
None = 0,

/// <summary>
/// Used for basic samples.
/// </summary>
Basic = 1,

/// <summary>
/// Used for intermediate samples.
/// </summary>
Intermediate = 2,

/// <summary>
/// Used for advanced samples.
/// </summary>
Advanced = 3,

/// <summary>
/// Used for scenario samples.
/// </summary>
Scenario = 4
}
}

Создаем в Silverlight проекте библиотеку ISampleMetadata.cs.
Копируем туда код:
using System;

namespace System.Windows.Controls.Samples
{
/// <summary>
/// Set of metadata needed for each sample.
/// </summary>
public interface ISampleMetadata
{
/// <summary>
/// Gets the Sample name.
/// </summary>
string Name { get; }

/// <summary>
/// Gets the Sample DifficultyLevel.
/// </summary>
DifficultyLevel DifficultyLevel { get; }

/// <summary>
/// Gets the Sample category.
/// </summary>
string Category { get; }
}
}

Создаем в Silverlight проекте библиотеку SampleAttribute.cs.
Копируем туда код:
using System;
using System.ComponentModel.Composition;
using System.Diagnostics;

namespace System.Windows.Controls.Samples
{
/// <summary>
/// The SampleAttribute identifies sample name and level of difficulty.
/// </summary>
[MetadataAttribute]
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
public sealed partial class SampleAttribute : ExportAttribute, ISampleMetadata
{
/// <summary>
/// Gets the path to the sample in the Sample Browser tree.
/// </summary>
public string Name { get; private set; }

/// <summary>
/// Gets the difficulty level of the sample.
/// </summary>
public DifficultyLevel DifficultyLevel { get; private set; }

/// <summary>
/// Gets the category for this sample.
/// </summary>
public string Category { get; private set; }

/// <summary>
/// Initializes a new instance of the SampleAttribute class.
/// </summary>
/// <param name="name">
/// Name of the sample.
/// </param>
/// <param name="difficultyLevel">
/// Difficulty Level of the sample.
/// </param>
/// <param name="category">
/// Category of the sample.
/// </param>
public SampleAttribute(string name, DifficultyLevel difficultyLevel, string category)
: base("Sample", typeof(FrameworkElement))
{
Debug.Assert(!string.IsNullOrEmpty(name), "name should not be empty!");
Name = name;
DifficultyLevel = difficultyLevel;
Category = category;
}
}
}

Заменяем код внутри файла MainPage.xaml.cs на этот:
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Linq;
using System.Diagnostics;
using System.Windows.Media;
using System.ComponentModel;
using SilverlightApplication10.ServiceReference1;
namespace System.Windows.Controls.Samples
{

[Sample("Zoom", DifficultyLevel.Scenario, "DataVisualization")]
public partial class SeriesZoomSample : UserControl
{
private Panel chartArea;
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Called by ZoomChanged.")]
private Panel ChartArea
{
get
{
if (chartArea == null)
{
chartArea = GetLogicalChildrenBreadthFirst(ZoomChart).Where(element => element.Name.Equals("ChartArea")).FirstOrDefault() as Panel;
}

return chartArea;
}
}

private ScrollViewer scrollArea;
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Called by an event handler in XAML.")]
private ScrollViewer ScrollArea
{
get
{
if (scrollArea == null)
{
scrollArea = GetLogicalChildrenBreadthFirst(ZoomChart).Where(element => element.Name.Equals("ScrollArea")).FirstOrDefault() as ScrollViewer;
}
return scrollArea;
}
}

public SeriesZoomSample()
{
////
ServiceClient WCFService = new ServiceClient();
WCFService.GetAllMGCompleted += new EventHandler<GetAllMGCompletedEventArgs>(SetSales);
WCFService.GetAllMGAsync();
////
InitializeComponent();
this.Loaded += ZoomIntoChartSample_Loaded;
}

private void ZoomIntoChartSample_Loaded(object sender, RoutedEventArgs e)
{
// force synchronous layout pass
ZoomChart.UpdateLayout();

// and force initial zoom
UpdateChart(0);
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Called by an event handler in XAML.")]
private void ZoomChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
Debug.Assert(ChartArea != null && ScrollArea != null, "Zoom should not be called before layout has occurred");

double zoom = e.NewValue;

UpdateChart(zoom);
}
private void UpdateChart(double zoom)
{
ChartArea.Width = ScrollArea.ViewportWidth + (ScrollArea.ViewportWidth * zoom / 100.0);
}

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Called by ChartArea and ScrollArea.")]
private IEnumerable<FrameworkElement> GetLogicalChildrenBreadthFirst(FrameworkElement parent)
{
Debug.Assert(parent != null, "The parent cannot be null.");

Queue<FrameworkElement> queue =
new Queue<FrameworkElement>(GetVisualChildren(parent).OfType<FrameworkElement>());

while (queue.Count > 0)
{
FrameworkElement element = queue.Dequeue();
yield return element;

foreach (FrameworkElement visualChild in GetVisualChildren(element).OfType<FrameworkElement>())
{
queue.Enqueue(visualChild);
}
}
}
private IEnumerable<DependencyObject> GetVisualChildren(DependencyObject parent)
{
Debug.Assert(parent != null, "The parent cannot be null.");

int childCount = VisualTreeHelper.GetChildrenCount(parent);
for (int counter = 0; counter < childCount; counter++)
{
yield return VisualTreeHelper.GetChild(parent, counter);
}
}



private void SetSales(object sender, GetAllMGCompletedEventArgs e)
{
ZoomChart.DataContext= e.Result;

}
}
}
Здесь мы создавали логику приложения Silverlight.
Далее меняем код в MainPage.xaml на этот:
<UserControl x:Class="System.Windows.Controls.Samples.SeriesZoomSample"
xmlns=" http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x=" http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:visualizationToolkit="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit"
xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
xmlns:chartingPrimitivesToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting.Primitives;assembly=System.Windows.Controls.DataVisualization.Toolkit">

<UserControl.Resources>
<ControlTemplate TargetType="chartingToolkit:Chart" x:Key="ZoomChartTemplate">
<Border

Padding="5">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>

<visualizationToolkit:Title/>

<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>



<ScrollViewer
x:Name="ScrollArea" BorderThickness="0"
HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Hidden">
<chartingPrimitivesToolkit:EdgePanel x:Name="ChartArea" Style="{TemplateBinding ChartAreaStyle}">
<Grid Canvas.ZIndex="-1" Style="{TemplateBinding PlotAreaStyle}" />
<Border Canvas.ZIndex="1" BorderBrush="#FF919191" BorderThickness="1" />
</chartingPrimitivesToolkit:EdgePanel>
</ScrollViewer>
</Grid>
</Grid>
</Border>
</ControlTemplate>

</UserControl.Resources>

<StackPanel Background="White">

<ContentControl Content="Zooming a Series"/>

<chartingToolkit:Chart HorizontalAlignment="Left" Width="450" Height="320" Template="{StaticResource ZoomChartTemplate}" x:Name="ZoomChart" Title="Zoomable">
<chartingToolkit:LineSeries
Title="Widget Popularity"
ItemsSource="{Binding}"
IndependentValuePath="Name" DependentValuePath="lvlPosition" />
<chartingToolkit:LineSeries
Title="Gizmo Popularity"
ItemsSource="{Binding}" IndependentValuePath="Name" DependentValuePath="OwnerId" />
</chartingToolkit:Chart>

<StackPanel Margin="5,10,0,0" Orientation="Horizontal" >
<TextBlock Text="Zoom:" />
<Slider Margin="5,0,0,0" Width="250" Minimum="0" Maximum="500" ValueChanged="ZoomChanged" />
</StackPanel>

</StackPanel>
</UserControl>

Здесь мы описывали, как будет выглядеть готовый график.
Компилируем проект. В итоге у нас получился линейный график:
...
Рейтинг: 0 / 0
веб приложение Silverlight 4 доступ по сети
    #37411112
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Che0,

выложите тестовый солюшен. и, скажите, какой веб-сервер используете?
...
Рейтинг: 0 / 0
веб приложение Silverlight 4 доступ по сети
    #37411135
Che0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enigmatic, что такое текстовый солюшен? Если это код то с каких именно файлов надо, а какие стандартные и приводить код из них нету смысла?
вот его урл
http://portal:49200/SilverlightApplication10.Web/SilverlightApplication10TestPage.aspx
...
Рейтинг: 0 / 0
веб приложение Silverlight 4 доступ по сети
    #37411145
Che0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
инструкция в ворде по которой сохдавалось приложение

http://ifolder.ru/25374375
...
Рейтинг: 0 / 0
веб приложение Silverlight 4 доступ по сети
    #37411188
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Che0,

тестовый солюшен - то, что можно скачать и запустить у себя для проверки работоспособности. Т.е. исходный код вашего приложения в виде решения вижуал студии в архиве.
урл вашего приожения локален.
вебсервер разработчика, который идет вместе со студией, не может принимать подключения по локальной сети, поэтому если используете его, то имейте это в виду.

Какой у вас вебсервер?
Раз приложение у вас открывается на том компе, на котором было создано, то скорее всего дело в вебсервере, а не в самом приложении.
...
Рейтинг: 0 / 0
веб приложение Silverlight 4 доступ по сети
    #37411240
Che0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enigmatic, а как узнать какой стоит веб-сервер? комп не мой ведь
...
Рейтинг: 0 / 0
веб приложение Silverlight 4 доступ по сети
    #37411255
Che0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В параметрах запуска стоит использовать веб-сервис по умолчанию
...
Рейтинг: 0 / 0
веб приложение Silverlight 4 доступ по сети
    #37411313
Che0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот проект
http://ifolder.ru/25377254
...
Рейтинг: 0 / 0
веб приложение Silverlight 4 доступ по сети
    #37411379
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Che0,

Какой веб-сервер стоит можно спросить у админа вот этого сервера:
автор http://portal/

авторВ параметрах запуска стоит использовать веб-сервис по умолчанию
Вебсервисы это немного другое.

Вообще, я так понял, вы со своего компа обращаетесь к http://portal:49200/SilverlightApplication10.Web/SilverlightApplication10TestPage.aspx и у вас всё работает, но не работает из под других учетных записей и с других компов. Видимо, вам надо пнуть админа этого вебсервера, чтобы он разрешил другим пользователям доступ по сети.
И что выводит при открытии приложения из под других пользователей?
...
Рейтинг: 0 / 0
веб приложение Silverlight 4 доступ по сети
    #37411438
Che0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enigmatic, я через удаленный доступ работаю на нем. Веб-СерВЕР по умолчанию. это описка была. Пишет что страница не найдена.
,
...
Рейтинг: 0 / 0
веб приложение Silverlight 4 доступ по сети
    #37411530
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Che0,

У вас по сети из браузера точно работает http://portal:49200/SilverlightApplication10.Web/SilverlightApplication10TestPage.aspx? Вы точно не локально обращаетесь?
...
Рейтинг: 0 / 0
веб приложение Silverlight 4 доступ по сети
    #37411632
Che0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня по сети не работает. Работает только если локальное обращение
...
Рейтинг: 0 / 0
веб приложение Silverlight 4 доступ по сети
    #37411741
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Che0,

Скорее всего вы пытаетесь обратиться к девелоперскому асп.нет серверу, он у вас установлен вместе со студией, а он не принимает соединения по сети, только локально. Чтобы дать возможность другим пользователям работать с приложением, вам нужно разместить его на каком-то другом веб-сервере и настроить его для работы с .xap-файлами (это, насколько я знаю, делается настройкой mime типов на веб-сервере, веб-сервер должен понимать, что xap - это сильверлайт приложение).
Опишите, на всякий случай, где вы создаете приложение, где и как вы его размещаете.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / веб приложение Silverlight 4 доступ по сети
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]